2011-05-18 68 views
0

我得到了在ant中運行junit目標的follwing錯誤代碼。 EshopCoreTestSuite是作爲一個框架:junit testSuite:ClassNotFoundException

public class EshopCoreTestSuite extends TestSuite { 

    public static Test suite() { 
     TestSuite suite = new TestSuite();   
     suite.addTestSuite(CustomerContextTest.class); 
     return suite; 
    } 
    public static void main(String[] args) { 
     TestRunner.run(EshopCoreTestSuite.class);} } 

錯誤:

<error message="com.bgc.EshopCoreTestSuite" type="java.lang.ClassNotFoundException">java.lang.ClassNotFoundException: com.bgc.EshopCoreTestSuite   ....   
     </error> 

JUnit的目標:

<property name="COMP_TEST_SRC_DIR" location="test/java"/> 
<property name="TEST_BUILD_DIR" location="build/test"/> 
<property name="COMP_JAVA_SRC" location="src/java" /> 
<property name="COMP_BUILD" location="build" /> 

我只是在這裏混淆路徑。我有src文件夾,並且在java和測試文件的java和測試文件夾下。我希望我給了更多/錯誤的路徑。 ....

<junit printsummary="on" fork="on"> 
     <classpath> 
     <path refid="CLASSPATH_JUNIT"/> 
     <dirset dir="${TEST_SRC_DIR}"/> 
     </classpath> 
     <env key="app.module" path="ESW"/> 
     <env key="app.env" path="DEV"/> 
     <test name="com.bgc.EshopCoreTestSuite" todir="../../../BUILD/ESW/ESWBUILD/CI/REPORT" outfile="junit_report"> 
     <formatter type="xml"/> 
     </test> 
    </junit> 
+0

'$ {TEST_SRC_DIR}'看起來很可疑。你沒有編譯類(輸出或bin)目錄的特定變量嗎? – Mat 2011-05-18 13:26:26

+0

我編輯了主要問題。我只是混淆了路徑元素,你能澄清它嗎? – bekur 2011-05-18 13:45:34

回答

1

嘗試改變:

<dirset dir="${TEST_SRC_DIR}"/> 

到:

<dirset dir="${TEST_BUILD_DIR}"/> 

<junit>部分。類路徑必須包含構建的類,而不是源文件。如果您的課程生成爲.../src/java,則改爲使用${COMP_JAVA_SRC}。 (但這有點不標準。)

問題是這個dirset變量必須指向你的.class文件所在的根目錄。

+0

我得到同樣的錯誤。 – bekur 2011-05-18 14:00:29

+0

嗡嗡聲......位於目錄結構中的「com/bgc/EshopCoreTestSuite.class'文件在哪裏? – Mat 2011-05-18 14:03:36

+0

bgc-esw-core \ src \在此測試和測試文件。 bgc-esw-core \ src \ java,這個包下的所有java文件。 – bekur 2011-05-18 14:13:41