簡體   English   中英

運行Maven測試時未執行黃瓜測試

[英]Cucumber tests not executing when running maven test

我有一個黃瓜項目。 當我右鍵單擊RunnerTest類並“運行“ RunnerTest”時,功能文件中的所有功能開始運行。所有測試均通過。

我的RunnerTest.class

   import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import java.sql.SQLException;
import lombok.extern.log4j.Log4j2;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@CucumberOptions(
features = {"classpath:foo.feature"},
glue = "com.foo.foobar.StepDefinitions",
plugin = {"json:target/cucumber-report/cucumber.json"},
monochrome = true,
strict = true
//,dryRun = true
)

@Log4j2
public class RunnerTest {}

但是,當我嘗試運行mvn test或mvn時,干凈安裝功能未運行。 這是輸出。


試驗

運行TestSuite使用以下方法配置TestNG:org.apache.maven.surefire.testng.conf.TestNG652Configurator@515f550a測試運行:0,失敗:0,錯誤:0,跳過:0,經過時間:0.895秒

結果:

測試運行:0,失敗:0,錯誤:0,跳過:0

這些是我的POM依賴項

<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-junit</artifactId>
  <version>3.0.0</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-core</artifactId>
  <version>3.0.0</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-java</artifactId>
  <version>3.0.0</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-jvm</artifactId>
  <version>3.0.0</version>
  <type>pom</type>
</dependency>
<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-jvm-deps</artifactId>
  <version>1.0.6</version>
</dependency>
<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>gherkin</artifactId>
  <version>4.1.3</version>
</dependency>
<!--<dependency>-->
  <!--<groupId>junit</groupId>-->
  <!--<artifactId>junit</artifactId>-->
  <!--<version>4.12</version>-->
<!--</dependency>-->
<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>6.14.3</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.6</version>
  <scope>test</scope>
</dependency>

我試圖添加mvn surefire插件,並在其中包括我的RunnerTest類。

<build>
 <pluginManagement>
  <plugins>
   <plugin>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>2.12.4</version>
     <configuration>
       <includes>
       <include>RunnerTest.java</include>
       </includes>
     </configuration>
   </plugin>
  </plugins>
 </pluginManagement>
</build>

但這也不起作用

已知問題:如果並行保持Junit和TestNG兩個依賴關系,則TestNG依賴關系將導致Surefire忽略JUnit包裝器類。

解決方案:可能有多種處理方式,例如我們可以定義2個執行,每種分別用於TestNG和JUnit,並根據需要禁用一個。

您能嘗試一下嗎:請刪除任何直接/間接的TestNG依賴項。

org.testng testng 6.14.3測試

並嘗試添加以下一個-

io。黃瓜黃瓜試3.0.0

另外,我建議您再做一件事以保持pom.xml的干凈。

關鍵點 :

  • 我們將不混合直接和傳遞依賴,特別是它們的版本! 這樣做可能導致不可預測的結果。

通過JUnit進行黃瓜執行

您應刪除小黃瓜芯,小黃瓜java,小黃瓜jvm,小黃瓜jvm-deps,小黃瓜,因為它們是傳遞性依賴,當您添加以下直接(主)依賴時,Maven會添加這些依賴。 只需添加下面的2和上面共享的testng一個。

 <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>3.0.0</version>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>3.0.0</version>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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