Ant to Gradle:JUnit(4.11)测试转换

时间:2016-08-31 19:33:50

标签: java gradle junit ant junit4

我对JUnit不是很熟悉,但是我正在尝试将使用junit的ant目标转换为gradle等价物。它不是那么热,因为我在gradle方面遇到了一些失败 - 我的印象是它是由于输入没有被发现某种方式/某处,但我无法确认,因为它不容易出现在蚂蚁目标。

这是蚂蚁脚本:

<target name="testing">
    <junit printsummary="yes" showoutput="yes">
       <classpath refid="classpath"/>
       <formatter type="xml"/>
       <batchtest fork="yes" todir="someOutputLocation">
          <fileset dir="${base}/testCode">
             <include name="**/included.java"/>
             <exclude name="**/excluded.java"/>
          </fileset>
       </batchtest>
    </junit>
</target>

这是我的学习尝试中的一个(变体之一):

task testing(type:Test){
    useJUnit()
    testClassesDir = file("testCodeCompiled")
    include '**/included.class'
    exclude '**/excluded.class'
    classpath = classpath
}

我得到的两个错误:

 junit.framework.AssertionFailedError
 java.lang.NullPointerException

AssertionFailedError可能是由多个JUnit依赖项引起的,我没有。我导入的只有junit-4.11的本地版本。

我真的不知道为什么它不起作用,但我怀疑这是由于一些gradle的复杂性。我见过人们提到了一个ant-junit库,我可以试着用它来至少复制gradle中的结果。

编辑: 出现了一个想法:我在一些gradle的src文件中找到了JUnit。通过调用useJUnit(),我可能正在使用它?如果是这样,毕竟可能存在双重依赖? Nope。分别删除useJUnit()和本地jar。前者表现得像以前一样,而后者则爆发了。

更多信息:原因可能是compiledTestCode缺少testCode包含的几个目录/数据。我可能要复制相关文件。或者,有没有办法让gradle的JUnit使用.java文件而不是.class?

1 个答案:

答案 0 :(得分:0)

对于那些你想知道的人,代码很好。我只是愚蠢。