忽略 Maven/Scala 单元测试文件
我正在使用 Scala (JUnit 4) 为 Java 项目编写单元测试用例。我正在使用 Maven 运行测试。
我为测试编写了一个 src/test/scala/com.xxx.BaseTest 类来提供一些常见的功能(@BeforeClass 等),但没有实际的 <代码>@Test 案例。
每当我在命令行上使用 mvn
运行测试时,它都会坚持尝试在 BaseTest
类中查找测试,并收到错误,因为不存在。
除了使用 @Ignore 之外,还有什么方法可以让 Maven/Scala/Surefire 不尝试运行 BaseTest 类吗?添加 @Ignore 并不是什么大问题,但我的测试运行显示比我实际使用标签“Skipped: 1”多了一个测试。
更新:我找到了解决方案。我将 BaseTest
重命名为 Base
; Maven 现在忽略它。还有其他办法吗?
I am writing my unit test cases for a Java project using Scala (JUnit 4). I am running the tests using Maven.
I have written a src/test/scala/com.xxx.BaseTest
class for the tests to provide some common functionality (@BeforeClass
, etc.), but no actual @Test
cases.
Whenever I run the tests using mvn
on the command line, it insists on trying to look for tests in the BaseTest
class, and gets an error because there are none present.
Other than using an @Ignore
, is there any way to have Maven/Scala/Surefire not try to run the BaseTest
class? Adding the @Ignore
is not a big deal, but my test run shows one more test than I actually have with the label "Skipped: 1".
UPDATE: I found a solution. I renamed BaseTest
to Base
; Maven now ignores it. Is there any other way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以重命名基测试类,使其不以 *Test 结尾,例如
BaseTestCase.java
。这就是我推荐的。最有可能的maven使用surefire插件执行测试,所以你也可以配置surefire跳过 BaseTest.java 的插件。我认为,默认情况下,surefire 假定所有以
*Test
结尾的类都是测试类。pom.xml
中类似这样的内容。You can either rename the base test class not to have *Test ending, for example
BaseTestCase.java
. This is what I would recommend.Most likely maven executes tests with surefire plugin, so alternatively you just can configure surefire plugin to skip BaseTest.java. I think, by default surefire assumes that all classes ending with
*Test
are test classes. Something like this in thepom.xml
.