【问题标题】:junit test suitesjunit 测试套件
【发布时间】:2012-09-11 15:55:07
【问题描述】:

我有一个脚本(test.bat),它允许我通过命令行启动一个 java 测试: -java -cp() org.junit.runner.JUnitCore package.Class

现在我想对几个 java 测试做同样的事情? 我该怎么做?我应该为每个 java 测试添加字节码吗? 请给我一个例子好吗?

【问题讨论】:

    标签: java unit-testing junit


    【解决方案1】:

    您可以通过junit ant 任务的单个命令使用 Ant 来运行您的测试。这是一个如何使用它的示例:

    <target name="runtests" depends="clean,compiletests">           
        <junit printsummary="yes" haltonfailure="no">
            <classpath>
                <path refid="test.classpath" />                 
                <pathelement location="${test.classes}"/>
            </classpath>                                
            <formatter type="xml"/>     
            <batchtest fork="yes" todir="${test.reports}">
                <fileset dir="${test.src}">
                    <include name="**/*Test*.java"/>
                </fileset>
            </batchtest>
        </junit>        
    </target>
    

    该目标使用batchtest,它是junit ant 任务的一部分。它设置您的测试类路径,因此所有在其类名中包含 Test.java 模式的测试都将包括在内。查看JUnit Task documentation

    【讨论】:

      【解决方案2】:

      在 JUnit 中,您可以将测试分组到一个测试套件中,然后使用单个命令运行它。

      这是关于 using test suites in JUnit 3 的教程, 这是关于 same with JUnit 4 的 SO 帖子。 另外,这里有一个关于how to use the new features of JUnit 4的教程。

      但是,如果您实际上是在尝试在批处理文件中编写构建脚本,我建议您改用现有的构建系统,无论是 AntMavenBuildr 还是其他。

      【讨论】:

      • peter,你能给我一个有用的junit doc链接吗:如何使用@Test,@Beforeclass,...我从Junit开始谢谢
      • @lamisse 我添加了一个新链接,希望对您有所帮助。
      • @PéterTörök:您的 JUnit 3 测试套件链接已损坏
      • @PéterTörök:关于如何使用 JUnit 4 新功能的链接也已损坏
      • @AdrienBe,这里是an apparently rewritten version,标题不同,但AFAIR 内容基本相同。
      【解决方案3】:

      JUnit 中使用的约定是拥有一个 AllTests 测试套件,将项目中的所有测试组合在一起,并使用 Ant 脚本或执行 AllTests 测试套件的任何东西。

      【讨论】:

        【解决方案4】:

        您可以使用 JUnit 注释语法创建一组套件。我在more detail here中描述了它。

        【讨论】:

          【解决方案5】:

          我看到了 3 种可能性:

          • 使用ant(在我打字时查看其他答案)
          • 将批处理更新为 java -cp ... file1 file2 filen
          • 使用这样的东西:

            org.junit.runner.JUnitCore.runClasses(TestClass1.class, ...);
            public class GlobalTest { }
            

          【讨论】:

            猜你喜欢
            • 2010-10-02
            • 1970-01-01
            • 2022-08-20
            • 1970-01-01
            • 1970-01-01
            • 2012-10-12
            • 2011-03-02
            • 1970-01-01
            • 2013-11-04
            相关资源
            最近更新 更多