2011-04-22 68 views
1

我有我的Java項目編譯和工作正常,但現在我想編譯JUnit測試,我在做一些麻煩。 我在/test/model所有tests.java,所以我試着這樣做:編譯Junit類的問題

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文件。

我該如何編譯?

+1

什麼是編譯器錯誤? – 2011-04-22 19:04:07

+0

你用於junit測試類的軟件包名稱是什麼? – 2011-04-22 19:05:39

+0

編譯錯誤是:找不到符號。例如,如果我試圖做狗的JUnit,在dogsTest.java中,我必須創建狗並對它們進行比較,但它就像它沒有得到dogs.java的信息,你知道我的意思嗎? 我的JUnit測試所在的軟件包名稱是model以及主類(它們位於不同的文件夾中)。 – Ankoku 2011-04-22 19:34:00

回答

2

如果軟件包名稱是「model」,那麼您應該在classpath中包含包文件夾的文件夾,而不是實際的軟件包文件夾本身。

試試這個類路徑:

CLASSPATH=/usr/share/java/junit4.jar;/build;/src;/test 

但是如果你的代碼實際上是在/建造,/ src目錄,和/測試纔有效。

讓我們假設你有你的主要項目文件夾爲:

/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 
+0

我總是打開終端我的文件夾的項目,所以我想你的CLASSPATH應該已經工作,但它沒有。我已經嘗試了整個路徑,但錯誤是一樣的。奇怪的是,在Netbeans中工作正常,但是當我嘗試手動執行時,它不起作用... – Ankoku 2011-04-22 20:13:02

+0

try';'在你的類路徑而不是':' – 2011-04-22 20:31:24

+0

我在做:export classpath ...然後使用javac編譯而不是:java -cp classpath ... 現在它可以工作,雖然它不能識別導入:「package org .junit不存在 import org.junit。測試;「 – Ankoku 2011-04-22 20:38:38