【发布时间】:2014-06-18 22:11:28
【问题描述】:
我克隆了 cucumber-jvm 项目并运行了示例 java-calculator-testng。生成的 testNg 报告显示两个测试套件。
第一个套件名为“cucumber.examples.java.calculator.RunCukesTest”,包含一个名为“run_cukes”的测试。
第二个套件名为“cucumber.examples.java.calculator.RunCukesByCompositionTest”,包含一个名为“runCukes”的测试。
我想在我自己的项目中复制它。我的意思是我想要一个显示两个测试套件的 testNg 报告。一个继承自 AbstractTestNGCucumberTests 的测试套件和另一个不继承的测试套件。
我创建的项目具有与 java-calculator-testng 示例相同的依赖项和文件结构。我还将我的类放在同一个包中,如 java-calculator-example。
问题是我的 testNg 报告只显示了一个名为“命令行套件”的测试套件,其中包含一个名为“命令行测试”的测试,该测试有两个类。
为什么我的测试类被合并到同一个测试套件中,而不是像示例中那样单独的套件?
另外,为什么我的测试套件命名为“命令行套件”
这是我尝试复制 java-calculator-testng 示例的方式:
RunCukesTest.java
// RunCukesTest.java
import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
@CucumberOptions(format = "json:target/cucumber-report.json")
public class RunCukesTest extends AbstractTestNGCucumberTests {
}
RunCukesByCompositionTest.java
// RunCukesByCompositionTest.java
import cucumber.api.CucumberOptions;
import cucumber.api.testng.TestNGCucumberRunner;
import org.testng.annotations.Test;
@CucumberOptions(format = "json:target/cucumber-report-composite.json")
public class RunCukesByCompositionTest extends RunCukesByCompositionBase {
@Test(groups = "examples-testng", description = "Example of using TestNGCucumberRunner to invoke Cucumber")
public void runCukes() {
new TestNGCucumberRunner(getClass()).runCukes();
}
}
RunCukesByCompositionBase.java
// RunCukesByCompositionBase
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
class RunCukesByCompositionBase {
@BeforeClass
public void beforeClass() {
// do expensive setup
System.out.println("[Base] @BeforeClass");
}
@BeforeMethod
public void beforeMethod() {
// do expensive setup
System.out.println("[Base] @BeforeMethod");
}
}
【问题讨论】:
标签: cucumber testng cucumber-jvm