从Ant到Gradle: JUnit(4.11)测试转换



我对JUnit不是很熟悉,但是我正在尝试将使用JUnit的ant目标转换为gradle等效。它没有那么热,因为我在gradle方面遇到了一些失败——我的印象是,这是由于输入没有被找到,但我不能确认,因为它不容易出现在ant目标中。

下面是ant脚本:

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

这是我的gradle尝试(其中一个变体):

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的复杂性。我看到有人提到了一个anti -junit库,我可能会尝试使用它来至少从gradle中复制结果。

EDIT:一个想法出现了:我在一些gradle的src文件中发现了JUnit。通过调用useJUnit(),我可以使用它代替?如果是这样的话,这可能是双重依赖?不。分别去掉了useJUnit()和本地jar。前者的行为一如既往,而后者则爆发了。

MORE INFO:原因可能是compiledTestCode缺少testCode包含的几个目录/数据。我可能得把相关文件复制一份。或者,是否有一种方法使gradle的JUnit使用。java文件而不是。class?

对于那些想知道的人来说,代码很好。

相关内容

  • 没有找到相关文章