如何让 gradle 和 cucumber 一起工作?
让 gradle 干净地使用 cucumber 是一个挑战.我想让 gradle build
来编译和运行测试,但到目前为止我还没有成功.
Getting gradle to work with cucumber cleanly is something of a challenge. I want to get gradle build
to compile and run the tests, but so far I've had no success.
plugins {
id "com.github.samueltbrown.cucumber" version "0.9"
}
apply plugin: 'java'
apply plugin: 'idea'
def JAVA_WEBSOCKET_VERSION = '1.2.1'
def CUCUMBER_VERSION = '1.2.4'
jar {
manifest {
attributes 'Implementation-Title': 'Java-WebSocket',
'Implementation-Version': JAVA_WEBSOCKET_VERSION
}
}
repositories {
jcenter()
}
dependencies {
testCompile "info.cukes:cucumber-java:$CUCUMBER_VERSION"
testCompile "info.cukes:cucumber-junit:$CUCUMBER_VERSION"
testCompile 'junit:junit:4.+'
}
task wrapper(type: Wrapper) {
gradleVersion = '2.9'
}
目前我收到很多关于黄瓜使用的注释(@Given
、@Then
、@After
)的错误.我想要的是在不使用 JavaExec 的情况下干净地构建项目.这是可能的,还是对 gradle 或 cucumber 有特定的限制来防止这种情况发生?
Currently I get many errors about the annotations (@Given
, @Then
, @After
) that cucumber uses. What I want is to build the project cleanly without using JavaExec. Is this possible or is there a specific limitation to either gradle or cucumber that prevents this?
推荐答案
dependencies {
testCompile 'info.cukes:cucumber-jvm:1+'
testCompile 'info.cukes:cucumber-jvm-deps:1+'
testCompile 'info.cukes:cucumber-java:1+'
testCompile 'info.cukes:cucumber-junit:1+'
testCompile 'info.cukes:cucumber-core:1+'
}
我创建了另一个函数来执行测试
I created another function to execute test
test {
ignoreFailures = true
// show standard out and standard error of the test JVM(s) on the console
testLogging.showStandardStreams = true
// set heap size for the test JVM(s)
minHeapSize = "128m"
maxHeapSize = "512m"
// set JVM arguments for the test JVM(s)
jvmArgs '-XX:MaxPermSize=256m'
// listen to events in the test execution lifecycle
beforeTest { descriptor ->
logger.lifecycle("Running test: " + descriptor)
}
// explicitly include or exclude tests( Add Package directly)
exclude "com/**/***/rest/junit**"
exclude "com/**/***/db/junit**"
reports.junitXml.enabled = false
reports.html.enabled = false
}
现在从命令行调用这个函数来执行测试
now Call this function from command line for test execution
task "forceTest" {
dependsOn "clean", "cleanTest", "test"
}
相关文章