Maven 测试命令发现的测试比测试文件夹包含的更多
Maven test command founds more test than test folder contains
我正在检查 open source project,我注意到 mvn test
命令发现的测试比测试文件夹包含的更多。
测试中存在错误和失败。不知道是不是跟问题有关
mvn test
命令:
Tests run: 1279, Failures: 2, Errors: 918, Skipped: 2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.646 s
[INFO] Finished at: 2021-08-31T12:00:30+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project aliyun-sdk-oss: There are test failures.
如果我 运行 通过在 intellij 中选择测试文件夹进行测试 ide:
所以 mvn test 运行s 1279 测试但是 intellij 可以 运行 只有 856 测试。这是什么原因?
首先,如果测试用例多于测试 classes,这是常见的预期行为。 Maven 计算测试用例。
public class FooTest {
@Test
public void first() {
// some test and assertion
}
@Test
public void second() {
// some test and assertion
}
}
本例只有一个测试class和两个测试用例,所以Maven会显示
Tests run: 2, ......
然后看看 IntelliJ IDEA 的输出。每行开头有四个不同的歌。
- 绿色粗表示测试成功
- 黄色叉号表示测试 运行 但某些断言失败
- 灰色 sing 表示测试被跳过(例如在 OS 上禁用)
- 红色感叹号表示未通过测试运行。
重点是最后一个。这意味着某些先决条件不可用或在初始化期间发生了意外情况。例如,如果 before 方法抛出异常,则该测试 class(以及该 class 中的所有测试用例)将不会 运行。 =13=]
可能 IDEA 没有选择所有配置选项,但命令行选择了。
运行 选项卡上列出的所有失败测试,只需再向下滚动一点。
其中一个失败是:
com.aliyun.oss.common.auth.InvalidCredentialsException: Access key id should not be null or empty.
at com.aliyun.oss.common.auth.DefaultCredentials.<init>(DefaultCredentials.java:37)
at com.aliyun.oss.common.auth.DefaultCredentials.<init>(DefaultCredentials.java:32)
at com.aliyun.oss.integrationtests.TestBase.getOSSClient(TestBase.java:107)
at com.aliyun.oss.integrationtests.TestBase.deleteBucket(TestBase.java:122)
at com.aliyun.oss.integrationtests.TestBase.tearDown(TestBase.java:98)
at com.aliyun.oss.integrationtests.ListVersionsTest.tearDown(ListVersionsTest.java:78)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access0(ParentRunner.java:66)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:293)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access0(ParentRunner.java:66)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
我正在检查 open source project,我注意到 mvn test
命令发现的测试比测试文件夹包含的更多。
测试中存在错误和失败。不知道是不是跟问题有关
mvn test
命令:
Tests run: 1279, Failures: 2, Errors: 918, Skipped: 2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.646 s
[INFO] Finished at: 2021-08-31T12:00:30+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project aliyun-sdk-oss: There are test failures.
如果我 运行 通过在 intellij 中选择测试文件夹进行测试 ide:
所以 mvn test 运行s 1279 测试但是 intellij 可以 运行 只有 856 测试。这是什么原因?
首先,如果测试用例多于测试 classes,这是常见的预期行为。 Maven 计算测试用例。
public class FooTest {
@Test
public void first() {
// some test and assertion
}
@Test
public void second() {
// some test and assertion
}
}
本例只有一个测试class和两个测试用例,所以Maven会显示
Tests run: 2, ......
然后看看 IntelliJ IDEA 的输出。每行开头有四个不同的歌。
- 绿色粗表示测试成功
- 黄色叉号表示测试 运行 但某些断言失败
- 灰色 sing 表示测试被跳过(例如在 OS 上禁用)
- 红色感叹号表示未通过测试运行。
重点是最后一个。这意味着某些先决条件不可用或在初始化期间发生了意外情况。例如,如果 before 方法抛出异常,则该测试 class(以及该 class 中的所有测试用例)将不会 运行。 =13=]
可能 IDEA 没有选择所有配置选项,但命令行选择了。
运行 选项卡上列出的所有失败测试,只需再向下滚动一点。
其中一个失败是:
com.aliyun.oss.common.auth.InvalidCredentialsException: Access key id should not be null or empty.
at com.aliyun.oss.common.auth.DefaultCredentials.<init>(DefaultCredentials.java:37)
at com.aliyun.oss.common.auth.DefaultCredentials.<init>(DefaultCredentials.java:32)
at com.aliyun.oss.integrationtests.TestBase.getOSSClient(TestBase.java:107)
at com.aliyun.oss.integrationtests.TestBase.deleteBucket(TestBase.java:122)
at com.aliyun.oss.integrationtests.TestBase.tearDown(TestBase.java:98)
at com.aliyun.oss.integrationtests.ListVersionsTest.tearDown(ListVersionsTest.java:78)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access0(ParentRunner.java:66)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:293)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access0(ParentRunner.java:66)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)