這次我跟着Junit Getting Started鏈接,這個例子的作品。
下面是我在Windows中所做的步驟;
1:我創建的文件夾測試在我的桌面
2:內部測試,我創建了計算器(Calculator.java)文件
public class Calculator {
public int evaluate(String expression) {
int sum = 0;
for (String summand: expression.split("\\+"))
sum += Integer.valueOf(summand);
return sum;
}
}
3.內部測試 ,我創建了CalculatorTest(CalculatorTest.java)文件
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CalculatorTest {
@Test
public void evaluatesExpression() {
Calculator calculator = new Calculator();
int sum = calculator.evaluate("1+2+3");
assertEquals(6, sum);
}
}
4:我從Maven Repository下載了Junit 12 jar(注意:這個例子不使用maven,我只使用maven倉庫來獲取jar文件)。
5:我下載了hamcrest-core 1。從3罐子Maven repository(注:本例中不使用Maven的,我只使用maven倉庫來獲取jar文件)
6:測試文件夾看起來像這樣 ![enter image description here](https://i.stack.imgur.com/CL9TH.png)
7:我運行結束了CMD,然後轉到測試文件夾的根目錄,然後執行此命令
javac -cp junit-4.12.jar;hamcrest-core-1.3.jar *.java
注:*的.java編譯所有文件與Java擴展,在日區分CalculatorTest.java和Calculator.java
8:test文件夾看起來像現在這個樣子 ![enter image description here](https://i.stack.imgur.com/pvzLE.png)
9:我執行命令
java -cp junit-4.12.jar;hamcrest-core-1.3.jar;. org.junit.runner.JUnitCore CalculatorTest
注:這句話一定要加上點(。)在類路徑,否則計算器文件是找不到它,你會得到
initializationError(org.junit.runner.JUnitCommandLineParseResult)
java.lang.IllegalArgumentException: Could not find class
最後,我得到單元測試ru nning通過命令行如何可以看到下面
![enter image description here](https://i.stack.imgur.com/1URfF.png)
此時例子並不inlcude的包關鍵字,它具有Windows上的物理文件夾添加到運行測試,讓我們解釋這個情況
1:讓我們包 「stackoverflow.junit.test」 添加到文件Calculator.java和CalculatorTest.java
package stackoverflow.junit.test;
public class Calculator {
public int evaluate(String expression) {
int sum = 0;
for (String summand: expression.split("\\+"))
sum += Integer.valueOf(summand);
return sum;
}
}
和
package stackoverflow.junit.test;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CalculatorTest {
@Test
public void evaluatesExpression() {
Calculator calculator = new Calculator();
int sum = calculator.evaluate("1+2+3");
assertEquals(6, sum);
}
}
2)現在可以在javac -cp junit-4.12.jar;hamcrest-core-1.3.jar *.java
之前用相同的指令顯示編譯代碼。但是,如果我想運行測試我會得到java.lang.NotClassDefFoundError
![enter image description here](https://i.stack.imgur.com/vz7fy.png)
爲了解決這個問題的文件夾必須在物理上創建並添加了Calculator.java和CalculatorTest.java
![enter image description here](https://i.stack.imgur.com/7iZL7.png)
用我的文件夾的右側結構我編譯和運行測試,但具有帳戶,此命令是從測試執行文件夾根目錄。更重要的是,包的名稱必須添加。
的javac -cp的junit-4.12.jar; hamcrest核-1.3.jar計算器/ junit的/測試/ *的java
的java -cp的junit-4.12.jar; hamcrest核-1.3.jar; 。 org.junit.runner.JUnitCore stackoverflow.junit.test。CalculatorTest
![enter image description here](https://i.stack.imgur.com/0U9jt.png)
建議:這一切會少乏味,如果你使用Maven或搖籃。
建議:檢查你的proyect的結構以及你的CLASSPATH。
這條消息真的幫了我很大的忙,似乎它是需要的最先進的核心。非常感謝。 –