簡體   English   中英

有沒有辦法用我的Cucumber測試運行程序運行常規的jUnit測試?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM