gpt4 book ai didi

java - (Gradle) 为新源集运行 testNG 测试任务时出现 ClassNotFoundException

转载 作者:行者123 更新时间:2023-11-30 11:23:10 28 4
gpt4 key购买 nike

我有自己的源集,它使用了一些主要源:

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)!这个任务有什么问题?

最佳答案

好的,我注意到我可以通过以下方式解决这个问题:

task integTest2(type: Test) {
useTestNG()
testClassesDir = project.sourceSets.special.output.classesDir
classpath = classpath.plus(files(testClassesDir))
testSrcDirs += project.sourceSets.special.java.srcDirs.toList()
}

这行得通,但看起来很……愚蠢。为什么我需要告诉测试任务,要测试的类目录应该在类路径上? “请测试该目录中的类。哦,顺便说一句,要加载它们,请尝试查看它们所在的目录”。我做错了什么吗?

关于java - (Gradle) 为新源集运行 testNG 测试任务时出现 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358604/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com