【发布时间】:2023-03-22 19:14:01
【问题描述】:
将在 java 中完成的 TestNG 项目从 maven .pom 文件移动到 gradle build.gradle。我能够让大部分东西正常工作,但在运行测试时出现错误。
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [ApplicationBeans.xml]; nested exception is java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
我在测试框架代码中使用的是spring框架。
使用以下 gradle 文件:
apply plugin: 'java'
dependencies {
compile project(':qa_common')
testCompile(group: 'org.uncommons', name: 'reportng', version:'1.1.4') {
exclude(module: 'testng')
}
testCompile group: 'com.google.inject', name: 'guice', version:'3.0'
compile group: 'xml-apis', name: 'xml-apis', version:'1.4.01'
}
task testDiscounts(type: Test) {
useTestNG() {
suites 'src/test/resources/testsuites/env_qa/TestSuite.xml'
}
}
task packageTests(type: Jar) {
from sourceSets.test.output
classifier = 'tests'
}
artifacts.archives packageTests
谁能告诉我哪里出错了?
【问题讨论】:
-
该错误似乎暗示
xml-apis不在类路径中,但您的构建文件具有此依赖关系。您可以尝试手动设置testDiscounts任务的类路径,例如:classpath = sourceSets.test.runtimeClasspath,看看它是否有效?
标签: java spring maven gradle testng