我有自己的源集,它使用一些主要来源:
sourceSets {
special {
java {
source main.java
}
}
我确保它可以正确编译和运行:
configurations {
specialCompile.extendsFrom(compile)
specialRuntime.extendsFrom(runtime)
}
并有我自己的测试任务:
task heavyTest(type: Test) {
useTestNG()
testClassesDir = project.sourceSets.special.output.classesDir
testSrcDirs += project.sourceSets.special.java.srcDirs.toList()
}
特殊来源包含类 org.me.ImportantTests 中的测试方法
编译工作和测试也在eclipse中成功运行,但是当我尝试从gradle执行heavyTest任务时它失败了
01:18:23.360 [ERROR] [system.err] 01:18:23.357 [ERROR] [system.err] [TestNG] [ERROR] No test suite found. Nothing to run
01:18:23.488 [QUIET] [system.out] 01:18:23.486 [QUIET] [system.out] Usage: <main class> [options] The XML suite files to run
使用 -d 运行表明 gradle 遇到了 ClassNotFoundException:
01:18:23.559 [DEBUG] [TestEventLogger] Caused by:
01:18:23.559 [DEBUG] [TestEventLogger] org.gradle.api.GradleException: Could not load test class 'org.me.ImportantTests'.
01:18:23.560 [DEBUG] [TestEventLogger] at org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.processTestClass(TestNGTestClassProcessor.java:67)
01:18:23.561 [DEBUG] [TestEventLogger] at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:49)
01:18:23.561 [DEBUG] [TestEventLogger] ... 21 more
01:18:23.561 [DEBUG] [TestEventLogger]
01:18:23.562 [DEBUG] [TestEventLogger] Caused by:
01:18:23.563 [DEBUG] [TestEventLogger] java.lang.ClassNotFoundException: org.me.ImportantTests
看起来 .class 文件不在类路径中......但我正确设置了 testClassesDir 并且该类正是它应该在的位置(/org/me/ImportantTests.class)!这个任务有什么问题?