dan*_*tro 6 java junit spring cucumber maven
我有一个带有 JUnit 5 和 Cucumber (v6.5.1) 测试的 Maven / Spring Boot 2.3.3 应用程序。
问题是我可以通过 Maven 运行正常的单元测试和集成测试,但它不运行 Cucumber。
黄瓜赛跑者:
package cucumber.salad.api.integration.cucumber;
import org.junit.runner.RunWith;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
@RunWith(Cucumber.class)
@CucumberOptions(
features = "classpath:features",
plugin = { "pretty", "html:target/reports/cucumber", "json:target/cucumber.json", "usage:target/usage.jsonx", "junit:target/junit.xml" },
extraGlue = "cucumber.salad.api.integration.cucumber.steps"
)
public class CucumberTest {
}
Run Code Online (Sandbox Code Playgroud)
黄瓜 Spring 上下文配置:
package cucumber.salad.api.integration.cucumber;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.test.context.ContextConfiguration;
import cucumber.salad.App;
import io.cucumber.spring.CucumberContextConfiguration;
@ContextConfiguration
@CucumberContextConfiguration
@SpringBootTest(classes = App.class, webEnvironment = WebEnvironment.RANDOM_PORT)
public class CucumberSpringContextConfig {
@LocalServerPort
protected int port;
}
Run Code Online (Sandbox Code Playgroud)
脚步:
package cucumber.salad.api.integration.cucumber.steps;
import static org.assertj.core.api.Assertions.assertThat;
import org.springframework.beans.factory.annotation.Autowired;
import cucumber.salad.api.integration.cucumber.CucumberSpringContextConfig;
import cucumber.salad.api.service.DummyService;
import io.cucumber.java.en.*;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class SaladStepDefinitions extends CucumberSpringContextConfig {
// steps here
}
Run Code Online (Sandbox Code Playgroud)
我在 Maven pom.xml 中使用 Surefire 和 Failsafe: https://github.com/danieldestro/cucumber-salad/blob/master/pom.xml
这是项目存储库:https://github.com/danieldestro/cucumber-salad
我运行的命令:
mvn clean test integration-test
Run Code Online (Sandbox Code Playgroud)
但 Cucumber 测试执行没有任何迹象。
我错过了什么或者做错了什么吗?
小智 9
我有同样的问题; 当我运行mvn test命令时,黄瓜测试没有执行。我正在使用:
我所做的是将其junit-jupiter-engine从spring-boot-starter-test依赖关系中排除。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
您正在使用cucumber-junit它将 Cucumber 与 JUnit 4 集成。您还使用 JUnit 5。JUnit 5 可以通过junit-vintage-engine. 但是,您已将该引擎从类路径中排除。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
包含 thejunit-vintage-engine或使用 thecucumber-junit-platform-engine代替cucumber-junit。
| 归档时间: |
|
| 查看次数: |
7630 次 |
| 最近记录: |