我有以下项目结构:
MyProject
--src
--test
--acceptance
--java
--resources
--unit
以及以下build.gradle
apply plugin: 'java'
apply plugin: 'idea'
version = '0.1'
repositories {
mavenCentral()
}
sourceSets {
main {
java {
srcDir 'src'
}
}
unit {
java {
srcDir 'test/unit'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
acceptance {
java {
srcDir 'test/acceptance/java'
}
resources {
srcDir 'test/acceptance/resources'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
}
dependencies {
compile fileTree(dir: 'lib', include: '*.jar')
unitCompile group: 'junit', name: 'junit', version: '4.11'
acceptanceCompile group: 'junit', name: 'junit', version: '4.11'
acceptanceCompile group: 'info.cukes', name: 'cucumber-junit', version: '1.1.3'
acceptanceCompile group: 'info.cukes', name: 'cucumber-java', version: '1.1.3'
}
task unitTest(type: Test) {
description = "Runs Unit Tests"
classpath += sourceSets.unit.runtimeClasspath
testClassesDir = sourceSets.unit.output.classesDir
}
task acceptanceTest(type: Test) {
description = "Runs Acceptance Tests"
classpath += sourceSets.acceptance.runtimeClasspath
testClassesDir = sourceSets.acceptance.output.classesDir
}
但是运行“gradle acceptanceTest”#39;导致编译问题,因为看起来在类路径上找不到依赖项。
答案 0 :(得分:1)
在1.1.3版本中,Cucumber类在包
中cucumber.api.junit
而不是
cucumber.junit
更改import语句似乎至少解决了类路径问题。
但是,通过gradle运行Cucumber JUnit测试存在问题。此处给出了更多信息以及使用javaexec任务的变通方法:https://github.com/yatskevich/cucumber-jvm-gradle-javaexec。总之,通过以下任务:
task cucumber() {
dependsOn assemble, compileAcceptanceJava
doLast {
javaexec {
main = "cucumber.api.cli.Main"
classpath = configurations.cucumberRuntime + sourceSets.main.output +
sourceSets.acceptance.output + sourceSets.unit.runtimeClasspath +
sourceSets.acceptance.runtimeClasspath
args = ['-f', 'junit:build/reports/test-results/cucumber.xml',
'-f', 'html:build/reports/test/cucumber-tests.html',
'--glue', 'com.paragon', 'test/acceptance/features']
}
}
}
我们现在可以运行
gradle cucumber
并生成JUnit报告。
答案 1 :(得分:0)
语法
srcDir 'path/to/src/dir'
正在添加一个额外的目录,而不是替换默认位置。
改为使用
srcDrs = ['path/to/src/dir']
这应该可以解决问题
欢呼声, 雷