diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b6e3dd82..5ed3ddc75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - Warnings generated by the [WORKSPACE file](WORKSPACE). | [#81](https://github.com/JetBrains/bazel-bsp/pull/81) - Semantic versioning parser - now it can parse every valid version. | [#93](https://github.com/JetBrains/bazel-bsp/pull/93) - `exports` attribute propagation to the BSP | [#98](https://github.com/JetBrains/bazel-bsp/pull/98) +- Now all `scala_junit_test` based rules (including `scala_specs2_junit_test`) are included in the BSP tests, unfortunately without test classes. | [#101](https://github.com/JetBrains/bazel-bsp/pull/101) ## [1.0.0] - 23.08.2021 ### Added diff --git a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java index b638c9ed7..371321555 100644 --- a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java +++ b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java @@ -209,15 +209,22 @@ private BazelBspTestScenarioStep scalaTestClasses() { new ScalaTestClassesParams( ImmutableList.of( new BuildTargetIdentifier("//example:example"), - new BuildTargetIdentifier("//example:example-test"))); + new BuildTargetIdentifier("//example:example-test"), + new BuildTargetIdentifier("//example:example-spec2-test"))); ScalaTestClassesItem exampleExampleTestTestClasses = new ScalaTestClassesItem( new BuildTargetIdentifier("//example:example-test"), ImmutableList.of("example.ExampleTest")); + // TODO (https://github.com/JetBrains/bazel-bsp/issues/96) + ScalaTestClassesItem exampleExampleSpec2TestTestClasses = + new ScalaTestClassesItem( + new BuildTargetIdentifier("//example:example-spec2-test"), ImmutableList.of()); + ScalaTestClassesResult expectedScalaTestClassesResult = - new ScalaTestClassesResult(ImmutableList.of(exampleExampleTestTestClasses)); + new ScalaTestClassesResult( + ImmutableList.of(exampleExampleTestTestClasses, exampleExampleSpec2TestTestClasses)); return new BazelBspTestScenarioStep( "Scala test classes", diff --git a/e2e/test-resources/sample-repo/WORKSPACE b/e2e/test-resources/sample-repo/WORKSPACE index 95322e038..658a58f61 100644 --- a/e2e/test-resources/sample-repo/WORKSPACE +++ b/e2e/test-resources/sample-repo/WORKSPACE @@ -77,6 +77,10 @@ http_archive( url = "https://github.com/bazelbuild/rules_jvm_external/archive/2.8.zip", ) +load("@io_bazel_rules_scala//specs2:specs2_junit.bzl", "specs2_junit_repositories") + +specs2_junit_repositories() + load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( diff --git a/e2e/test-resources/sample-repo/example/BUILD b/e2e/test-resources/sample-repo/example/BUILD index 5129c06a5..160c221a4 100644 --- a/e2e/test-resources/sample-repo/example/BUILD +++ b/e2e/test-resources/sample-repo/example/BUILD @@ -1,4 +1,4 @@ -load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_test") +load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_specs2_junit_test", "scala_test") filegroup( name = "resources", @@ -31,3 +31,12 @@ scala_test( visibility = ["//visibility:public"], deps = ["//dep"], ) + +scala_specs2_junit_test( + name = "example-spec2-test", + srcs = ["ExampleSpec2Test.scala"], + resources = [":resources"], + suffixes = ["Test"], + visibility = ["//visibility:public"], + deps = ["//dep"], +) diff --git a/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala b/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala new file mode 100644 index 000000000..f1f1b2f6a --- /dev/null +++ b/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala @@ -0,0 +1,13 @@ +package example + +import dep.Dep +import org.specs2.mutable._ + +class ExampleSpec2Test extends SpecificationWithJUnit { + "Test" should { + "be test" in { + Dep.list.head + "Test" must have size (4) + } + } +} diff --git a/server/src/main/java/org/jetbrains/bsp/bazel/server/bsp/services/ScalaBuildServerService.java b/server/src/main/java/org/jetbrains/bsp/bazel/server/bsp/services/ScalaBuildServerService.java index b3f936938..b211244ff 100644 --- a/server/src/main/java/org/jetbrains/bsp/bazel/server/bsp/services/ScalaBuildServerService.java +++ b/server/src/main/java/org/jetbrains/bsp/bazel/server/bsp/services/ScalaBuildServerService.java @@ -36,7 +36,8 @@ public class ScalaBuildServerService { private static final List SCALA_LANGUAGES_IDS = ImmutableList.of(Constants.SCALAC, Constants.JAVAC); - private static final String SCALA_TEST_RULE_CLASS_NAME = "scala_test"; + private static final List SCALA_TEST_RULE_CLASS_NAMES = + ImmutableList.of("scala_test", "scala_junit_test"); private final TargetsLanguageOptionsResolver targetsLanguageOptionsResolver; private final TargetRulesResolver targetsScalaMainClassesRulesResolver; @@ -69,7 +70,7 @@ public ScalaBuildServerService( } private boolean isScalaTestRule(Build.Rule rule) { - return rule.getRuleClass().equals(SCALA_TEST_RULE_CLASS_NAME); + return SCALA_TEST_RULE_CLASS_NAMES.contains(rule.getRuleClass()); } private ScalaTestClassesItem mapRuleToTestClassesItem(Build.Rule rule) {