相关疑难解决方法(0)

有没有办法告诉surefire跳过某个包中的测试?

像下面这样的东西.

我想要一种方法来跳过我的dao测试.试图避免定义套件的开销.

使用CI,我希望每晚有一个运行所有测试,另一个5分钟的SCM调查仅运行"快速"测试.

mvn -DskipPattern=**.dao.** test
Run Code Online (Sandbox Code Playgroud)

maven-2 surefire

27
推荐指数
3
解决办法
2万
查看次数

有没有办法让中间件失败时集成测试快速失败?

我们的测试环境有各种依赖中间件的集成测试(CMS平台,底层数据库,Elasticsearch索引).

它们是自动化的,我们使用Docker管理我们的中间件,因此我们没有不可靠网络的问题.但是,有时我们的数据库崩溃,我们的测试失败.

问题是这种失败的检测是通过一连串的org.hibernate.exception.JDBCConnectionException消息.这些是通过超时发生的.当发生这种情况时,我们最终会遇到数百个因此异常而失败的测试,每个测试都需要几秒钟才能失败.因此,我们的测试需要一个年龄才能完成.实际上,当我们意识到它们已经完成时,我们通常会手动终止这些构建.

我的问题:在Maven驱动的Java测试环境中,有没有办法指导构建系统注意特定类型的异常并杀死整个过程,如果它们到达(或达到某种阈值)?

我们可以监视我们的容器并以这种方式杀死构建过程,但我希望有一种更清洁的方式来实现它与maven.

java integration-testing maven

8
推荐指数
1
解决办法
244
查看次数

使用 Maven/JUnit/Spring 在第一次失败时停止测试

我希望 Maven 在遇到第一个错误时停止尝试运行我的 JUnit Spring 测试。这可能吗?

我的测试类如下所示,我将它们作为标准 Maven 目标运行。

@ContextConfiguration(locations = {"classpath:/spring-config/store-persistence.xml","classpath:/spring-config/store-security.xml","classpath:/spring-config/store-service.xml", "classpath:/spring-config/store-servlet.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
public class SkuLicenceServiceIntegrationTest
{
...
Run Code Online (Sandbox Code Playgroud)

如果 Spring 配置中存在错误,则每个测试都会尝试重新启动 Spring 上下文,这每次需要 20 秒。这意味着我们很长时间都没有发现任何测试失败,因为它会在得出构建失败的结论之前尝试运行全部测试!

junit spring surefire maven jenkins

5
推荐指数
1
解决办法
3905
查看次数

使用maven surefire在第一次错误/失败后停止测试执行

我正在使用maven surefire插件来执行我的应用程序的junit测试.

我想在第一次失败或错误后停止执行.在我的例子中,这些是修改应用程序状态的集成测试,因此我需要知道失败后的确切系统状态(如果执行隔离,我们会遇到一个测试通过的奇怪问题,但如果在整个套件中执行则没有).

可能吗?我在这里的插件文档中找不到一个选项.

junit maven maven-surefire-plugin

5
推荐指数
1
解决办法
1万
查看次数