2016-09-13 3 views
2

안녕이다, 내 강사가 일부 작업이를 JUnit 개미를 사용하여 나는 아주 새로운 해요 성공 (개미)

와 나는 tests..etc 실행 클래스를 구축하고자 할 그것을 사용하는 우리 원 내가 캔트 작업을 할 수 없기 때문에 정말 혼란 스럽다. 나는 다른 몇몇 포스트 및 근원을 읽었다 그러나 저를 훨씬 혼란스럽게한다.

내가 무엇입니까 오류는 다음과 같습니다

Testsuite: SolutionTest 
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec 

Caused an ERROR 
SolutionTest 
java.lang.ClassNotFoundException: SolutionTest 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:340) 

이 내 빌드 파일입니다 : 당신이 실패 구축하려는 경우

<project name="Solution" basedir="." default="main"> 
    <property name="src.dir"  value="src"/> 
    <property name="build.dir" value="build"/> 

    <property name="classes.dir" value="${build.dir}/classes"/> 
    <property name="jar.dir" value="${build.dir}/jar"/> 
    <property name="doc.dir" value="${build.dir}/documentation" /> 
    <property name="test.dir" value="${build.dir}/test" />  

    <target name="compile"> 
     <mkdir dir="${classes.dir}"/> 
      <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false"> 
     </javac> 
    </target> 

    <target name="jar" depends="compile"> 
     <mkdir dir="${jar.dir}"/> 
      <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"> 
     </jar> 
    </target> 

    <target name="clean" depends="jar"> 
     <delete dir="${classes.dir}"/> 
    </target> 

    <target name="doc" depends="clean"> 
     <mkdir dir="${doc.dir}" /> 
     <javadoc destdir="${build.dir}/documentation" sourcefiles="${src.dir}/*.java" /> 
    </target> 

    <target name="junit" depends="doc"> 
     <mkdir dir="${test.dir}" /> 
     <junit printsummary="yes" haltonfailure="no"> 
      <classpath location="." /> 

      <test name="SolutionTest" haltonfailure="no" todir="${test.dir}" outfile="result"> 
       <formatter type="plain" /> 
       <formatter type="xml" /> 
      </test> 
     </junit> 
    </target> 

    <target name="main" depends="clean, junit"/> 
</project> 
+0

의 JUnit을 설정하면 확인할 수 있습니다. '를 사용하여 컴파일 된 .class 파일을 실제로 어디에 두 었는지 가리 킵니다. 테스트를 컴파일하는 곳이 어디인지는 알 수 없습니다. src.dir 대신 tests.dir 또는 그와 같은 컴파일 대상과 비슷한 대상이 필요할 수 있습니다. – Robert

+0

junit 대상이 컴파일 대상에 의존하지 않는 것 같습니다. 그것은'clean'에 의존하는'doc'에 달려 있지만 거기에는 컴파일 단계가 없습니다. 당신은 클래스를 컴파일하고'test.dir'에 의존성을 테스트 한 다음'classpath' 엘리먼트를'.' 대신에'dir '로 지정할 필요가 있습니다. – jrahhali

+0

테스트가 실패했을 때 (또는 찾을 수 없을 때) JUnit을 빌드하지 못하게하려면, junit 타겟에서'haltonfailure'를 "yes"로 변경하십시오. – Robert

답변

1

당신은 <junit haltOnFailure="yes" haltOnError="yes" ...>를 사용해야합니다.

또는 당신 failurePropertyerrorProperty

<junit failureProperty="test.failure" haltonfailure="test.error"> 
    <!-- your code here --> 
</junit> 

을 사용 그리고 그 속성 테스트를 찾을 수 없습니다

<target name="main" depends="clean, junit, verifyNoError, verifyNoFailure"/> 

<target name="verifyNoError" if="test.error"> 
    <fail message="JUnit test or tests errors."/> 
</target> 

<target name="verifyNoFailure" if="test.failure"> 
    <echo message="I'm here. Now what?"/> 
    <fail message="JUnit test or tests failed."/> 
</target> 
관련 문제