2011-05-18 76 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