【问题标题】:Running JUnit Tests by Ant in Jenkins without access to Source-Files?在 Jenkins 中通过 Ant 运行 JUnit 测试而不访问源文件?
【发布时间】:2014-06-26 12:07:54
【问题描述】:

我想让客户能够使用 Ant 和 Jenkins 运行 JUnit-Tests。我不想将源文件部署到客户的 Jenkins。

如果客户有一个正在运行的 jenkins 安装,而我只给了他我们编译的 Java-Classes、编译的 Test-Classes 和我们的 ant 脚本,那么客户是否能够在不访问源代码的情况下使用 jenkins 执行测试?

我的蚂蚁目标看起来像这样

<target name="testWithoutCompile">      
    <junit fork="true" forkmode="perBatch" haltonerror="false" haltonfailure="false" showoutput="false" printsummary="true" clonevm="true">
        <classpath>
            <path refid="test.run.classpath" />
        </classpath>
        <formatter type="xml" />
        <batchtest todir="${report.test.dir}">
            <fileset dir="${build.test.dir}">
                <include name="**/*Test.class" />
            </fileset>
        </batchtest>
    </junit>
</target>

【问题讨论】:

  • 如果你已经有一个可以在本地测试它们的环境,我认为测试起来很简单
  • 你是对的,虽然我现在在本地测试有点复杂,所以我希望有一个通用的答案帮助我决定是否值得努力。
  • 如果您将单元测试类文件发送给客户,那么为什么不将它们打包为单独的 jar 文件呢?简单得多,然后可以对测试进行版本控制并与他们测试的代码一起发布。

标签: ant junit jenkins


【解决方案1】:

是的,这是可能的,至少直接使用 Ant。

我在本地有一个简单的项目(只有 src 和 classes 子目录),我可以在其中运行特定的单元测试,只需使用类文件(我事先删除了测试类源和正在测试的类的源)

<target name="test">
        <junit>
              <classpath refid="test.path" />
              <formatter type="brief" usefile="false" />
              <test name="TestHobbyHorse" />
        </junit>
</target>

[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0.011 sec
[junit] 
[junit] Testcase: testNoise(TestHobbyHorse):    Caused an ERROR
[junit] expected:<[noSound]> but was:<[Neigh]>
[junit]     at TestHobbyHorse.testNoise(Unknown Source)
[junit] 

我没有测试过,但假设您可以扩展它以运行各种测试类,就像您在 build.xml 中尝试过的那样,并且 Jenkins 应该只是运行 Ant 我不明白为什么Jenkins 的出现会影响它。

【讨论】:

    猜你喜欢
    • 2012-03-23
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2012-12-19
    • 1970-01-01
    相关资源
    最近更新 更多