使用JUnit 4.x防止Hamcrest的使用

问题描述 投票:0回答:1

我目前在AssertJ上使用JUnit4.x。我想确保没有使用Hamcrest的情况。但是,Hamcrest Core是JUnit在运行时必需的依赖项,请参见Junit issue #1429: A Exception for junit4.12 about org/hamcrest/SelfDescribing #1429 ,因此从pom.xml中完全排除依赖项或调整maven-surefire-plugin类路径将不起作用。

我正在寻找一种调整测试编译器类路径的方法,但是我没有在maven-compiler-plugin中找到这样的选项。

我如何确保我的测试不使用Hamcrest断言?我想在构建时使用Maven强制执行。

java maven junit hamcrest assertj
1个回答
0
投票

Maven缺少范围。它具有test,但用于测试编译和测试运行时。理想情况下,您应该将hamcrest的范围设置为测试运行时。 JUnit 5已经明确表明Maven缺少此作用域,但是很难引入新的作用域。

所以我认为您最好的选择是Checkstyle规则IllegalType或类似的规则来阻止它。

© www.soinside.com 2019 - 2024. All rights reserved.