在Jenkins中运行JUnit测试而无法访问Source-Files?

时间:2014-06-26 12:07:55

标签: ant junit jenkins

我想让客户使用Jenkins运行带有Ant的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>

1 个答案:

答案 0 :(得分:1)

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

我在本地有简单的项目(只是src和类子目录),我可以运行特定的单元测试,只需使用类文件(我已经删除了测试类源和被测试类的源代码)

<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] 

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