【问题标题】:Not able to execute Jbehave with Gradle using Serenity Framewrok无法使用 Serenity Framework 使用 Gradle 执行 Jbehave
【发布时间】:2015-10-06 04:28:57
【问题描述】:

我正在使用 Serenity - JBehave 框架。创建示例脚本后,我可以从 eClipse 执行 Junit runner 类,但是当我尝试从命令提示符执行以下任何命令时,它会给我错误。

$gradle clean test aggregate
$gradle clean test
$gradle clean build

所有情况下的错误信息都是一样的,如下:

org.gradle.TestRunnerClass > initializationError FAILED
    java.lang.RuntimeException
        Caused by: java.lang.RuntimeException
            Caused by: java.lang.IllegalArgumentException
                Caused by: java.lang.ClassNotFoundException

1 test completed, 1 failed
:test FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':test'.
> There were failing tests. See the report at: file:///C:/$ /build/reports/tests/index.html

以下是详细信息: Test Runner 类:

package org.gradle;

import net.serenitybdd.jbehave.SerenityStories;

public class TestRunnerClass extends SerenityStories{}

示例步骤定义类:

package org.gradle.stepDef;

import net.thucydides.core.annotations.Step;
import net.thucydides.core.annotations.Steps;

import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;

public class StepDefSticky {
    @Given("User is on Sticky note home page")
    public void givenUserIsOnStickyNoteHomePage() {
      System.out.println("I am in Given");
    }

    @When("User clicks on Add Note button")
    public void whenUserClicksOnAddNoteButton() {
        System.out.println("I am in When");
    }

    @Then("Sticky note pop up should get open")
    public void thenStickyNotePopUpShouldGetOpen() {
        System.out.println("I am in Then");
    }
}

请仔细查看包结构。

下面是我正在使用的 build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'net.serenity-bdd.aggregator'
apply plugin: 'com.jfrog.bintray'

sourceCompatibility = 1.8
version = '1.0'
def poiVersion = "3.10.1"

repositories {
    maven { url "repoUrl" }
}

buildscript {
    repositories {
        maven { url "repoURL" }
    }
    dependencies {
        classpath("net.serenity-bdd:serenity-gradle-plugin:1.0.47")
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:0.6'
        classpath 'org.ajoberstar:gradle-git:0.12.0'
    }
}

ext {
    bintrayBaseUrl = 'https://api.bintray.com/maven'
    bintrayRepository = 'maven'
    bintrayPackage = 'serenity-cucumber'
    projectDescription = 'Serenity Cucumber integration'
    if (!project.hasProperty("bintrayUsername")) {
        bintrayUsername = 'wakaleo'
    }
    if (!project.hasProperty("bintrayApiKey")) {
        bintrayApiKey = ''
    }
    serenityCoreVersion = '1.0.47'
    cucumberJVMVersion = '1.2.2'
}

dependencies {

    testCompile('junit:junit:4.11')
    testCompile('org.assertj:assertj-core:1.7.0')
    testCompile('org.slf4j:slf4j-simple:1.7.7')


    //JBehave jar files
    testCompile 'net.serenity-bdd:core:1.0.47'
    testCompile 'net.serenity-bdd:serenity-jbehave:1.0.21'
    testCompile 'net.serenity-bdd:serenity-junit:1.0.47'

    // Apache POI plugin for excel read
    compile "org.apache.poi:poi:${poiVersion}"
    compile "org.apache.poi:poi-ooxml:${poiVersion}"
    compile "org.apache.poi:ooxml-schemas:1.1"
}


   gradle.startParameter.continueOnFailure = true

uploadArchives {
    repositories { flatDir { dirs 'repos' } }
}

task wrapper(type: Wrapper) { gradleVersion = '2.3' }

我已将 .story 文件存储在 src/test/resources 包下。

请帮助我了解我在哪里犯了错误。感谢您在这方面的帮助。

【问题讨论】:

  • 找不到哪个类?请附上 build.gradle 文件。
  • 对不起,我错过了 build.gradle。现在我已经更新了它。当我从命令提示符执行问题中提到的任何命令时,它会给出类未找到异常。谢谢

标签: gradle junit4 jbehave


【解决方案1】:

在您的 build.gradle 文件中启用标准输出和标准错误:

test {
    testLogging {
        showStandardStreams = true
    }
}

为了确保您的所有故事都能运行,请添加一个 TestSuite 类:

@RunWith(Suite.class)
@SuiteClasses({ Story1.class, Story2.class})
public class TestSuite { }

注意:Story1 和 Story2 是测试运行程序的名称,以根据 Serenity 命名约定匹配名为 Story1.story 和 Story2.story 的 JBehave Gherkin 文件和步骤文件名称 Story1Steps.java 和 Story2Steps.java。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多