[英]How to use scope “test” and junit correctly with maven and eclipse
我試圖了解我在Eclipse中使用Maven進行junit-tests所做的錯誤。 我主要是一直在遵循Maven的“入門指南”: https : //spring.io/guides/gs/maven/
但是對我而言,在junit方面,它並不能完全正常工作。
為了遵循示例中的確切文件夾結構,我在Eclipse中的src下命名了我的包:main.java.hello test.java.hello
我的測試類GreeterTest.java在包test.java.hello中,並且具有以下內容:
package test.java.hello;
import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.*;
import org.junit.Test;
import main.java.hello.Greeter;
public class GreeterTest {
private Greeter greeter = new Greeter();
@Test
public void greeterSaysHello() {
assertThat(greeter.sayHello(), containsString("Hello"));
}
}
在我的pom.xml中,您可以找到依賴項:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
不幸的是,eclipse說“導入org.junit無法解決”。 如果將依賴項的范圍從測試更改為編譯,我不會收到此錯誤消息,但這不是打算使用范圍的方式,是嗎?
我需要改變一下eclipse也理解的一點,即該類是測試類,因此所有依賴項實際上都可用嗎?
最佳尼爾斯
這個問題似乎與Eclipse認為您的源代碼樹開始的位置有關。 您已經將代碼放在src/main/java/hello
和src/main/test/hello
但是Eclipse認為源代碼樹從src
開始。 因此,它認為其他文件夾是軟件包,並為您的類提供了軟件包名稱,例如main.java.hello.Greeter
。
解決此問題的最快方法是在命令行上運行:
mvn eclipse:eclipse
使用Maven修復您的Eclipse項目。 它將自動將源根設置為正確的值。 完成后,右鍵單擊該項目,然后選擇“ Refresh
以查看更新的項目。
要手動修復此問題,您可以右鍵單擊該項目,然后選擇“ Build Path > Configure Build Path
,然后在右側的“ Source
選項卡中,確保將整個src/main/java
(最多包含java
!)作為源文件夾。 通過單擊Add Folder
並在src - main
下的樹中選擇java
來執行此操作。 對src/main/test
做同樣的事情。 通常,maven項目也將src/main/resources
作為源文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.