Maven junit测试用例在终端上生成失败

Maven junit测试用例在终端上生成失败,maven,junit,terminal,Maven,Junit,Terminal,我是马文和朱尼特的新手,所以请容忍我:-) 我创建了一个示例maven项目,其中包含一个src/test/java中的简单测试,如下所示 public class AssertUnitTest { @Test public void massageTest(){ Assert.assertEquals("abc", "abd"); } } 当我从eclipse运行测试时,测试失败了,说预期的是abc,但找到了abd。 当我使用终端运行同一个程序时,它

我是马文和朱尼特的新手,所以请容忍我:-)

我创建了一个示例maven项目,其中包含一个src/test/java中的简单测试,如下所示

public class AssertUnitTest {
    @Test
    public void massageTest(){  
        Assert.assertEquals("abc", "abd");
    }
}
当我从eclipse运行测试时,测试失败了,说预期的是abc,但找到了abd。 当我使用终端运行同一个程序时,它表示构建失败

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.assertpackage.AssertUnitTest
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.055 sec <<< FAILURE!

Results :

Failed tests: 
  messageTest(com.assertpackage.AssertUnitTest): expected:<ab[c]> but was:<ab[d]>

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.712s
[INFO] Finished at: Fri Sep 13 11:36:12 GMT+05:30 2013
[INFO] Final Memory: 9M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-   plugin:2.7.2:test (default-test) on project AssertProject: There are test failures.
[ERROR] 
[ERROR] Please refer to /Users/support/Documents/Omniture_Selenium_Project/AssertProject  /target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
-------------------------------------------------------
T T S T S
-------------------------------------------------------
正在运行com.assertpackage.AssertUnitTest

测试运行:1,失败:1,错误:0,跳过:0,运行时间:0.055秒标准maven构建将运行在src/test/java中找到的所有测试,如果其中一个失败(如示例测试),构建将失败


因此,要使构建成功,您必须使所有测试都通过。

标准maven构建将运行src/test/java中的所有测试,如果其中一个测试失败(如您的示例测试),则构建将失败


因此,要使构建成功,您必须使所有测试都通过。

Maven使用
surefire
插件的
test
目标,默认情况下运行所有单元测试,即使一个测试失败,也会失败。控制台输出几乎是这样说的:

Failed to execute goal org.apache.maven.plugins:maven-surefire-   plugin:2.7.2:test (default-test) on project AssertProject: There are test failures.
如果目标未能执行,则结果是构建失败


因此,只需确保您的测试不失败或(不推荐)。Maven使用
surefire
插件的
测试目标默认运行所有单元测试,即使一个测试失败也会失败。控制台输出几乎是这样说的:

Failed to execute goal org.apache.maven.plugins:maven-surefire-   plugin:2.7.2:test (default-test) on project AssertProject: There are test failures.
如果目标未能执行,则结果是构建失败


所以,只需确保您的测试不失败或(不推荐)。Maven构建生命周期包含测试阶段,该阶段运行属于project的所有jUnit测试。如果测试失败,构建生命周期也会失败。这是理想的行为,因为您不想发布未通过测试的应用程序

您可以通过编写将通过测试阶段(预期行为)的测试来修复它,或者您可以使用maven参数-DskipTests构建应用程序,该参数将跳过生命周期的测试阶段

*编辑*


我还建议您了解maven构建生命周期。

maven构建生命周期包含测试阶段,该阶段运行属于项目的所有jUnit测试。如果测试失败,构建生命周期也会失败。这是理想的行为,因为您不想发布未通过测试的应用程序

您可以通过编写将通过测试阶段(预期行为)的测试来修复它,或者您可以使用maven参数-DskipTests构建应用程序,该参数将跳过生命周期的测试阶段

*编辑*


我还建议您了解maven构建生命周期。

maven提出了三种不同的方法来管理反应堆构建中的故障:
快速失效
结束时失效
永不失效

默认的方法是
快速失效
,它在第一个失败的项目之后停止反应堆的建造。要使
构建成功
(尽管测试失败),您可以尝试
结束时失败
策略(使用
--fail-at-end
(或仅使用
-fae
)参数


Via:

Maven提出了三种不同的方法来管理反应堆建造中的故障:
快速故障
结束时故障
永不故障

默认方式是
快速失效
,它在第一个失败的项目后停止反应堆建造。要使
建造成功
(尽管测试失败),您可以尝试
结束时失败
策略(使用
--结束时失败
(或仅使用
-fae
)参数

Via:

Surefire插件有一个参数,该参数在启用时不会导致测试失败时生成失败

您可以将其添加到命令行:

mvn install -Dmaven.test.failure.ignore=true
()

或者您可以将其直接烘焙到pom.xml中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${surefire.plugin.version}</version>
    <configuration>
        <!-- Build, even if tests fail -->
        <testFailureIgnore>true</testFailureIgnore>
    </configuration>
</plugin>

org.apache.maven.plugins
maven surefire插件
${surefire.plugin.version}
真的
请注意,这并不会阻止测试像其他人建议的那样运行。测试像正常一样运行,并且仍然生成所有报告。使用此设置,不再需要通过所有测试才能生成项目。因此,我倾向于在我的所有POM中包括此Surefire配置。

Surefire插件具有一个参数,该参数在启用时不会在测试失败时导致生成失败

您可以将其添加到命令行:

mvn install -Dmaven.test.failure.ignore=true
()

或者您可以将其直接烘焙到pom.xml中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${surefire.plugin.version}</version>
    <configuration>
        <!-- Build, even if tests fail -->
        <testFailureIgnore>true</testFailureIgnore>
    </configuration>
</plugin>

org.apache.maven.plugins
maven surefire插件
${surefire.plugin.version}
真的

请注意,这不会阻止测试像其他人建议的那样运行。测试像正常运行一样运行,并且仍然生成所有报告。使用此设置,不再需要通过所有测试才能生成项目。因此,我倾向于在所有POM中包括此Surefire配置。

在构建pro期间访问某个单元测试失败。您可以通过添加ff参数
-Dmaven.test跳过测试。在构建过程中,跳过某个单元测试失败。您可以通过添加ff参数
-Dmaven.test.skip跳过测试,除非这些选项似乎在多模块构建中使用(允许无故障模块生成),OP有一个失败的项目。除了这些选项似乎用于多模块生成(允许无故障模块生成),OP有一个失败的项目。