我的java项目已编译并正常工作但现在我想编译JUnit测试并且我在执行它时遇到了一些麻烦。
我在/test/model
中有所有tests.java,所以我尝试这样做:
javac -cp org.junit.runner.JUnitCore ./test/model/Mytestclass.java
但是它没有检测到我的项目的类,所以它失败了。
我也试过这个classpath
:
CLASSPATH=/usr/share/java/junit4.jar:/build/model:/src/model
在/build/model
中,有.class文件,在/src/model
中有我项目的主要Java文件。
我该怎么编译呢?
答案 0 :(得分:2)
如果包名是“model”,那么你应该在classpath中包含包文件夹的文件夹,而不是实际的包文件夹本身。
试试这个类路径:
CLASSPATH=/usr/share/java/junit4.jar;/build;/src;/test
但是,只有当您的代码实际位于/ build,/ src和/ test中时,这才有效。
假设您的主项目文件夹位于:
/somePath/dogs
,您的代码位于:
/somePath/dogs/src/model/Dog.java
/somePath/dogs/test/model/DogTest.java
并且您的jar文件位于:
/somePath/dogs/build
然后您的类路径应如下所示:
CLASSPATH=/usr/share/java/junit4.jar;/somePath/dogs/build;/somePath/dogs/src;/somePath/dogs/test