[英]Is there a way to run regular jUnit tests with my Cucumber test runner?
我有一个使用Maven设置的Java项目,正在同时使用Cucumber和jUnit进行测试。
也许我错过了一些东西,但是有没有办法设置我的Cucumber测试运行程序以自动运行jUnit测试以及我的黄瓜功能? 不必运行两个单独的测试套件,并使用mvn test
自动测试所有内容,将是很好的选择。
目前,当我指定@RunWith(Cucumber.class)
,它只是查找.feature
文件,而忽略所有其他测试。
这是我的测试文件结构:
└── test
├── java
│ ├── TestRunner.java
│ └── com
│ └── myname
│ └── server
│ ├── GlobalHooks.java
│ ├── HTTPRequestsSteps.java
│ └── unitTests
│ ├── RequestHandlerTests.java
│ └── ServerTests.java
└── resources
└── cucumber
├── ... cucumber features here
还有我的测试运行程序,当前仅查找.feature
文件。
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
@RunWith(Cucumber.class)
@CucumberOptions(plugin={"pretty"}, glue="com.rnelson.server", features="src/test/resources")
public class TestRunner {
}
我一直在搜索无济于事,因此将不胜感激。 谢谢!
那Becca呢?
从黄瓜官方文档:
JUnit运行器
JUnit运行器使用JUnit框架运行Cucumber。 您只需要一个带有注释的空类:
package mypackage;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
public class RunCukesTest {
}
您可以使用IDE或构建工具(例如mvn test),以与运行其他JUnit测试相同的方式运行此测试。
另外,这可能对您有用:
http://www.hascode.com/2014/12/bdd-testing-with-cucumber-java-and-junit/
在这里,我正在做完全相同的事情,黄瓜运行Junit并只需单击我们的Jenkins工作即可生成结果,xml Junit报告和html Cucumber报告...
如果您想同时将测试作为JUnit测试运行,则不能将Junit批注与Cucumber批注结合使用。 但是您可以轻松地将这两个类分开,然后以“ mvn test”目标运行这两个类。
最后一件事,我认为这是最后一个解决方案,但它应该可以工作,您也可以直接从代码中调用Junit测试,但这将是一个非常肮脏且没有标准的解决方案...
JUnitCore junit = new JUnitCore();
Result result = junit.run(testClasses);
清楚吗? :)也许您的需求有所不同?
这听起来像是对我的误解。
JUnit测试使用JUnit编写,并将驻留在Java类中。 如果名称格式正确,则它们将由Maven执行,以便Maven测试运行程序将其提取。
一个JUnit类使用@RunWith(Cucumber.class)
注释。 它是运行Cucumber的JUnit类。 这只是另一个Java类,但是此类搜索.feature
文件并尝试执行所找到的文件。 它的特殊之处还在于它不允许您定义任何方法。 除此之外,它是一个常规的JUnit类,它将与任何其他JUnit类同时执行。
因此,所有测试类都将被拾取并执行。 其中之一将尝试运行您的Cucumber方案。
毫无疑问,您在同一项目中有许多测试类。 即使在同一包装中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.