手动运行黄瓜JVM测试
问题描述:
我有点特殊情况。基本上我有一个单元测试,用@Test注释,而在那个测试中我需要执行一个Cucumber JVM测试类。手动运行黄瓜JVM测试
为什么?很长的故事。与类加载器和RoboGuice有关,这不是很重要,但它确实限制了我可以做什么和不可以做什么。
这里的测试方法:
@Test
public void runCucumberFeature() throws Exception {
Cucumber cucumber = new Cucumber(MyCucumberTest.class);
cucumber.run(new RunNotifier());
}
MyCucumberTest是一类我已经建立,并注明是这样的:
//@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}, strict=true)
public class MyCucumberTest {
// Empty, as required by Cucumber JVM
}
为什么我注释掉@RunWith注解?因为如果我不这样做,那么Cucumber测试跑步者会拿起测试并运行测试,我不想因为我正在手动运行测试。
问题是上述不起作用。它看起来像Cucumber找到功能文件,它正在验证MyCucumberTest包含@Givens等,它甚至会打印出测试,就好像它正在运行它一样。
但它没有。没有代码在@Given,@When和@Then方法中执行。我不确定这是为什么,但我有一个模糊的想法,即Cucumber JVM测试运行器不想执行代码,因为该类未使用@RunWith注释。
任何人都可以帮忙吗?
答
我不能提供你正在寻找的解决方案,但是....
...你认为标记要(与@Manual
例如)手动运行测试?
然后,您可以取消注释@RunWith
注释,并通过在您的Cucumber-JVM调用中添加--tags [email protected]
来排除手动测试。
在你手动的JUnit调用,您可以添加--tags @Manual
我不知道有一个@Manual标签。它可能有帮助。感谢您的建议,这是迄今为止最好的:-) – user1283068 2012-08-20 09:30:00
这些标签是用户定义的 - 使用对您有意义的标签。您可以将多个标签应用到场景中,这样可以为特定目的构建测试套件(例如\ @Regression,\ @ Defect_54321等) – 2012-08-20 14:25:45