0

次のプロジェクト構造があります。

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 acceptTest」を実行すると、依存関係がクラスパスに見つからないように見えるため、コンパイルの問題が発生します。

4

2 に答える 2

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 レポートを生成します。

于 2013-08-10T13:20:30.790 に答える
0

構文

srcDir 'path/to/src/dir'

デフォルトの場所を置き換える代わりに、追加のディレクトリを追加しています。

代わりに使用

srcDrs = ['path/to/src/dir']

これでうまくいくはずです

乾杯、ルネ

于 2013-08-09T23:01:18.910 に答える