Я не знаю, почему вы использовали макрос, я могу вызвать testng без него. Смотрите мое решение ниже:
- Я создаю банку своей программы (используя процессор аннотаций)
- Я создаю свою тестовую банку (используя процессор аннотаций)
- Я вызываю testng через java_test().
Единственное, что я не понял: как не жестко кодировать "libmy-model-test-lib.jar"
java_library(
name = "my-model",
srcs = glob(["src/main/java/**/*.java"]),
resources = glob(["src/main/resources/**"]),
deps = [
"@commons_logging_jar//jar",
":lombok",
":mysema_query",
...
],
)
java_library(
name = "my-model-test-lib",
srcs = glob(["src/test/java/**/*.java"]),
deps = [
"@org_hamcrest_core_jar//jar",
"@commons_logging_jar//jar",
":lombok",
":mysema_query",
...
"@assertj_jar//jar",
"@mockito_jar//jar",
"@testng_jar//jar",
],
)
java_test(
name = "AllTests",
size = "small",
runtime_deps = [
":my-model-test-lib",
":my-model",
"@org_jboss_logging_jar//jar",
"@org_objenesis_jar//jar",
"@com_beust_jcommander//jar",
],
use_testrunner=False,
main_class='org.testng.TestNG',
args=['-testjar','libmy-model-test-lib.jar','-verbose','2'],
)
java_plugin(
name = "lombok_plugin",
processor_class = "lombok.launch.AnnotationProcessorHider$AnnotationProcessor",
deps = ["@lombok_jar//jar"],
)
java_library(
name = "lombok",
exports = ["@lombok_jar//jar"],
exported_plugins = [":lombok_plugin"],
)
java_plugin(
name = "mysema_query_plugin",
processor_class = "com.mysema.query.apt.jpa.JPAAnnotationProcessor",
deps = [
"@querydsl_apt_jar//jar",
"@mysema_codegen_jar//jar",
"@javax_persistence_jar//jar",
"@querydsl_codegen_jar//jar",
"@guava_jar//jar",
"@querydsl_core_jar//jar",
"@javax_inject_jar//jar",
],
)
java_library(
name = "mysema_query",
exports = ["@querydsl_apt_jar//jar"],
exported_plugins = [":mysema_query_plugin"],
)
java_plugin(
name = "mockito_plugin",
processor_class = "",
deps = ["@mockito_jar//jar"],
)
java_library(
name = "mockito",
exports = ["@mockito_jar//jar"],
exported_plugins = [":mockito_plugin"],
)
person
Nicolas Zin
schedule
24.04.2018