有一个项目我使用过TestNG&摇篮。
build.gradle文件中的测试部分:
tasks.withType(Test) {
useTestNG() {
useDefaultListeners = true
testLogging.showStandardStreams = true
}
}
/*
some code there
*/
task integTest(type: Test) {
useTestNG() {
excludeGroups = ['jt-someTest2', 'jt-someTest3'].toSet()
}
}
对于这种情况,everithing工作正常。但是当我尝试这样的时候:
def allAvailableTestGroups = ['someTest1', 'someTest2', 'someTest3'].toSet()
def testGroup = project.hasProperty("testGroup") ? project.testGroup : 'all'
tasks.withType(Test) {
useTestNG() {
useDefaultListeners = true
testLogging.showStandardStreams = true
}
}
/*
...
some code there
...
*/
task integTest(type: Test) {
useTestNG() {
excludeGroups = ( allAvailableTestGroups.collect { "jt-${it}" }.findAll { it != testGroup } ) as HashSet<String>
}
}
我遇到了这样的麻烦:
org.gradle.internal.UncheckedException: 抛出java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.GStringImpl
// ...
由以下引起:java.lang.ClassNotFoundException:org.codehaus.groovy.runtime.GStringImpl
// ...
抛出了意外的异常。
org.gradle.internal.remote.internal.MessageIOException:无法读取 来自'/127.0.0.1:58219'的消息。
// ...由以下引起:com.esotericsoftware.kryo.KryoException:java.io.IOException:╙фрыхээ√щїюёЄяЁшэєфшЄхы№эюЁрчюЁтры ёє∙хёЄтє■∙ххяюфъы■ўхэшх
// ...由以下引起:java.io.IOException:╙фрыхээ√щїюёЄяЁшэєфшЄхы№эюЁрчюЁтрыёє∙хёЄтє■∙ххяюфъы■ўхэшх
// ...
抛出了意外的异常。
org.gradle.internal.remote.internal.MessageIOException:无法 写'/127.0.0.1:58219'。
// ...由以下引起:java.io.IOException:╙фрыхээ√щїюёЄяЁшэєфшЄхы№эюЁрчюЁтрыёє∙хёЄтє■∙ххяюфъы■ўхэшх
// ...:integTest FAILED
FAILURE:构建失败,异常。
怎么了?
答案 0 :(得分:1)
替换此行:
excludeGroups = ( allAvailableTestGroups.collect { "jt-${it}" }
.findAll { it != testGroup } ) as HashSet<String>
有了这个:
excludeGroups = ( allAvailableTestGroups.collect { "jt-${it}".toString() }
.findAll { it != testGroup } ) as Set
看起来Groovy编译器由于某种原因缺少GString "jt-$it"
的自动翻译...调用toString()
应该解决这个问题。