Skip to content

Commit f02ed21

Browse files
authored
Add multi framework example (#1248)
* Add multi framework example * Fix path * Lint * Fix path
1 parent 369ac2f commit f02ed21

File tree

6 files changed

+156
-0
lines changed

6 files changed

+156
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
load("@io_bazel_rules_scala//scala:providers.bzl", "declare_deps_provider")
2+
load("@io_bazel_rules_scala//testing/toolchain:toolchain.bzl", "scala_testing_toolchain")
3+
4+
scala_testing_toolchain(
5+
name = "testing_toolchains_with_all_deps_impl",
6+
dep_providers = [
7+
":junit_classpath_provider",
8+
":scalatest_classpath_provider",
9+
":specs2_classpath_provider",
10+
":specs2_junit_classpath_provider",
11+
],
12+
visibility = ["//visibility:public"],
13+
)
14+
15+
toolchain(
16+
name = "testing_toolchain",
17+
toolchain = ":testing_toolchains_with_all_deps_impl",
18+
toolchain_type = "@io_bazel_rules_scala//testing/toolchain:testing_toolchain_type",
19+
visibility = ["//visibility:public"],
20+
)
21+
22+
declare_deps_provider(
23+
name = "junit_classpath_provider",
24+
deps_id = "junit_classpath",
25+
visibility = ["//visibility:public"],
26+
deps = [
27+
"@io_bazel_rules_scala_junit_junit",
28+
"@io_bazel_rules_scala_org_hamcrest_hamcrest_core",
29+
],
30+
)
31+
32+
declare_deps_provider(
33+
name = "scalatest_classpath_provider",
34+
deps_id = "scalatest_classpath",
35+
visibility = ["//visibility:public"],
36+
deps = [
37+
"@io_bazel_rules_scala_scalactic",
38+
"@io_bazel_rules_scala_scalatest",
39+
],
40+
)
41+
42+
declare_deps_provider(
43+
name = "specs2_classpath_provider",
44+
deps_id = "specs2_classpath",
45+
visibility = ["//visibility:public"],
46+
deps = [
47+
"@io_bazel_rules_scala_org_specs2_specs2_common",
48+
"@io_bazel_rules_scala_org_specs2_specs2_core",
49+
"@io_bazel_rules_scala_org_specs2_specs2_fp",
50+
"@io_bazel_rules_scala_org_specs2_specs2_matcher",
51+
],
52+
)
53+
54+
declare_deps_provider(
55+
name = "specs2_junit_classpath_provider",
56+
deps_id = "specs2_junit_classpath",
57+
visibility = ["//visibility:public"],
58+
deps = [
59+
"@io_bazel_rules_scala_org_specs2_specs2_junit",
60+
],
61+
)
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
workspace(name = "multi_frameworks_toolchain")
2+
3+
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
4+
5+
skylib_version = "1.0.3"
6+
7+
http_archive(
8+
name = "bazel_skylib",
9+
sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
10+
type = "tar.gz",
11+
url = "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/{}/bazel-skylib-{}.tar.gz".format(skylib_version, skylib_version),
12+
)
13+
14+
http_archive(
15+
name = "rules_proto",
16+
sha256 = "8e7d59a5b12b233be5652e3d29f42fba01c7cbab09f6b3a8d0a57ed6d1e9a0da",
17+
strip_prefix = "rules_proto-7e4afce6fe62dbff0a4a03450143146f9f2d7488",
18+
urls = [
19+
"https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
20+
"https://github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
21+
],
22+
)
23+
24+
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
25+
26+
rules_proto_dependencies()
27+
28+
rules_proto_toolchains()
29+
30+
local_repository(
31+
name = "io_bazel_rules_scala",
32+
path = "../../..",
33+
)
34+
35+
load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
36+
37+
scala_config()
38+
39+
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories")
40+
41+
scala_repositories()
42+
43+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_toolchains")
44+
45+
scala_register_toolchains()
46+
47+
load("@io_bazel_rules_scala//testing:scalatest.bzl", "scalatest_repositories")
48+
load("@io_bazel_rules_scala//testing:junit.bzl", "junit_repositories")
49+
load("@io_bazel_rules_scala//testing:specs2_junit.bzl", "specs2_junit_repositories")
50+
51+
scalatest_repositories()
52+
53+
junit_repositories()
54+
55+
specs2_junit_repositories()
56+
57+
register_toolchains(":testing_toolchain")
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_specs2_junit_test", "scala_test")
2+
3+
scala_test(
4+
name = "scalatest_example",
5+
srcs = ["ScalaTestExampleTest.scala"],
6+
)
7+
8+
scala_specs2_junit_test(
9+
name = "specs2_example",
10+
srcs = ["Specs2ExampleTest.scala"],
11+
suffixes = ["Test"],
12+
)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package example
2+
3+
import org.scalatest.flatspec.AnyFlatSpec
4+
import org.scalatest.matchers.must.Matchers
5+
6+
class ScalaTestExampleTest extends AnyFlatSpec with Matchers {
7+
"Exmaple" should "pass" in {
8+
1 must be(1)
9+
}
10+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package example
2+
3+
import org.specs2.mutable.SpecWithJUnit
4+
5+
class Specs2ExampleTest extends SpecWithJUnit {
6+
7+
"Example" in {
8+
1 mustEqual 1
9+
}
10+
11+
}

test/shell/test_examples.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,10 @@ function specs2_junit_repositories_example() {
1212
(cd examples/testing/specs2_junit_repositories; bazel test //...)
1313
}
1414

15+
function multi_framework_toolchain_example() {
16+
(cd examples/testing/multi_frameworks_toolchain; bazel test //...)
17+
}
18+
1519
$runner scalatest_repositories_example
1620
$runner specs2_junit_repositories_example
21+
$runner multi_framework_toolchain_example

0 commit comments

Comments
 (0)