我有一个用Maven建立的Java项目,我正在用Cucumber和jUnit进行测试。
也许我遗漏了一些东西,但是有没有一种方法可以设置Cucumber测试运行程序来自动运行jUnit测试以及Cucumber特性?不必运行两个单独的测试套件,并使用mvn test
自动测试所有内容,这将是一件非常棒的事情。
目前,当我指定@RunWith(Cucumber.class)
时,它只查找。功能
文件并忽略所有其他测试。
以下是我的测试文件结构:
└── test
├── java
│ ├── TestRunner.java
│ └── com
│ └── myname
│ └── server
│ ├── GlobalHooks.java
│ ├── HTTPRequestsSteps.java
│ └── unitTests
│ ├── RequestHandlerTests.java
│ └── ServerTests.java
└── resources
└── cucumber
├── ... cucumber features here
还有我的测试运行程序,它目前只查找。功能
文件。
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 {
}
我一直在寻找,但没有任何结果,因此,任何帮助都将不胜感激。谢谢
对我来说,这听起来像是个误会。
JUnit测试是使用JUnit编写的,将驻留在java类中。如果名称的格式正确,那么它们将由Maven执行,以便Maven测试运行程序能够获取该名称。
一个JUnit类用@RunAnd(Cucumber.class)
注释。它是一个运行Cucumber的JUnit类。这只是另一个Java的类,但是这个类搜索。特性
文件并试图执行它找到的文件。它的特殊之处还在于,它不允许您在其中定义任何方法。除此之外,它是一个常规的JUnit类,将与任何其他JUnit类同时执行。
因此,所有测试类都将被拾取并执行。其中一个将尝试运行你的cucumber场景。
在同一个项目中有许多测试类,这并不矛盾。即使是在同一个包裹里。
这个怎么样,贝卡:
来自cucumber官方文件:
少年赛跑运动员
JUnit运行程序使用JUnit框架来运行Cucumber。您只需要一个带有注释的空类:
package mypackage;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
public class RunCukesTest {
}
您可以像运行其他JUnit测试一样运行这个测试,使用您的IDE或构建工具(例如mvn测试)。
这也可能对你有用:
http://www.hascode.com/2014/12/bdd-testing-with-cucumber-java-and-junit/
在这里,我正在做完全相同的事情,cucumber运行JUnit,并将产生两个结果,xml JUnit报告和htmlcucumber报告,只需点击我们的詹金斯工作...
如果您的意思是希望以JUnit测试的形式运行测试,那么就不能将JUnit注释与Cucumber注释结合起来。但是您可以轻松地将这两个类分开,然后以“mvn测试”的目标运行这两个类。。
最后一件事,我认为这是最后的解决方案,但它应该工作,你也可以直接调用JUnit测试从代码,但它将是一个非常肮脏和没有标准的解决方案…
JUnitCore junit = new JUnitCore();
Result result = junit.run(testClasses);
清楚吗?:)或者你需要的是不同的?
尝试在maven中重新访问Junit 5平台(5.3.2)下运行Junit 5/4集成测试。从如何使用maven failsafe插件并行运行JUnit 4和JUnit 5测试 在surefire插件2.22.1下运行单元测试可以并行和混合测试JUnit 5和JUnit 4,并在详细信息中查看工作线程。 在故障安全2.22.1中尝试了同样的方法,但是需要日志时间,并且似乎没有并行执行。而且只有[m
使用: cucumber芯-1.2.4 cucumber-java-1.2.4 cucumber-junit-1.2.4 Junit-4.12 Eclipse Mars.1 Java 8
Cucumber测试没有并行运行(Cucumber jvm并行插件)? 如果我使用runner类执行测试,一次将执行一个功能文件,但是当将以下插件添加到POM文件时,似乎没有功能文件执行? 即使我指向了正确的功能文件文件夹? 我的POM文件:
我正在尝试使用IntelliJ Community edition和Gradle5.5.1运行一个Cucumber/Selenium项目。 我的TestRunner类如下:
我昨晚睡觉时所有的测试都出现了,今天重新加载了项目,无论我怎么尝试,VS测试运行程序都没有得到任何东西。 昨天,当我加载项目时,我遇到了类似的问题,但通过添加对Microsoft.DotNet.内部成就的引用来解决它 - 正如这篇文章所建议的那样:链接。但是,即使有参考文献,它现在也在做同样的事情。我现在也尝试了帖子中的几乎所有答案,但无济于事。 我已经与一个基本的控制台项目进行了比较,除了包含的
从很久以前的某个版本开始(大约是1.b.35版),Nutz 就偷偷的加入了 maven 的 pom.xml 文件, 极好的解决了测试时需要依赖其他 jar 包的问题,接下来就让我们使用 Maven 来进行 JUnit 测试吧。 Nutz 在 Github 的 地址为 https://github.com/nutzam/nutz(Git@OSC镜像 https://git.oschina.net/n