저는 JUnit에 익숙하지 않지만, junit을 동등한 gradle에 사용하는 ant 타겟을 번역하려고합니다. 그것은 너무 뜨거워지지 않습니다, 왜냐하면 저는 gradle 측에서 약간의 실패를 얻고 있습니다. 저는 그것이 입력이 어떤 방법 으로든/어딘가에서 발견되지 않았기 때문에 발생합니다. 그러나 쉽게 확인할 수는 없으므로 확인할 수 없습니다. 개미 표적. 내가 할Gradle에 개미 : JUnit (4.11) 테스트 변환
task testing(type:Test){
useJUnit()
testClassesDir = file("testCodeCompiled")
include '**/included.class'
exclude '**/excluded.class'
classpath = classpath
}
두 개의 오류 :
은 여기에 개미 스크립트입니다 :
<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을 시도의 (변화 중 하나)의
junit.framework.AssertionFailedError
java.lang.NullPointerException
AssertionFailedError는 필자가 가지고 있지 않은 여러 JUnit 종속성 때문에 발생했습니다. junit-4.11 만 로컬 버전을 가져옵니다.
그래도 실제로 작동하지 않는 이유를 알지 못합니다. 그래플의 복잡성 때문일 것으로 생각됩니다. 사람들이 ant-junit 라이브러리에 대해 언급 한 것을 보았습니다. 적어도이 라이브러리를 사용하여 결과를 복제 할 수는 있습니다.
편집 :생각이 생깁니다 : 일부 gradle의 src 파일에서 JUnit을 발견했습니다. useJUnit()을 호출하면 대신 그 것을 사용할 수 있습니까? 그렇다면 결국 이중 종속성이있을 수 있습니까?아니요. useJUnit() 및 로컬 jar를 별도로 제거했습니다. 전자는 이전처럼 행동했지만 후자는 폭발했다.
추가 정보 : 원인은 compiledTestCode에 testCode에 포함 된 여러 디렉토리/데이터가 누락되었을 가능성이 있습니다. 아마도 관련 파일을 복사해야 할 것입니다. 또는 gradle의 JUnit이 .class 대신 .java 파일을 사용하도록하는 방법이 있습니까?