[英]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.