2011-01-10 268 views
17

當我運行Maven中使用此命令一個測試:在maven中運行單個測試 - >沒有執行測試!

mvn test -Dtest=InitiateTest 

我得到以下結果:

No tests were executed! 

它的工作幾分鐘前,但現在它停止工作一些原因。在運行測試之前,我嘗試了幾次運行mvn clean,但沒有幫助。

測試看起來是這樣的:

import org.openqa.selenium.*; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.support.ui.Select; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 

public class InitiateTest { 

public static FirefoxDriver driver; 

@Before 
public void setUp() throws Exception { 
    driver = new FirefoxDriver(); 
} 

@Test 
public void initiateTest() throws Exception { 
     driver.get("http://localhost:8080/login.jsp"); 
     ... 
} 

@After 
public void tearDown() throws Exception { 
driver.close(); 

} }

UPDATE:

它加入這個依賴於POM造成的:

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium</artifactId> 
    <version>2.0b1</version> 
    <scope>test</scope> 
</dependency> 

當我刪除它,一切正常罰款。一切工作正常,即使我添加這兩個依賴項,而不是上一個:

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-support</artifactId> 
    <version>2.0b1</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-firefox-driver</artifactId> 
    <version>2.0b1</version> 
    <scope>test</scope> 
</dependency> 

這很奇怪。

+0

你想運行什麼樣的考驗?你沒有任何機會放置@Ignore? – Navi 2011-01-10 10:59:09

+0

可能不太有用..但請記住,這兩個都是測試版產品,並大大受到破壞。 – mezmo 2011-01-10 20:35:35

回答

5

您可能正在某處找到類路徑上的JUnit3,這有效地禁用了JUnit4。

運行mvn依賴關係:樹找出它來自哪裏並將排除添加到依賴項。

0

嘗試在調試模式下運行maven。它可能會給你更多的信息。

mvn -X -Dtest=InitiateTest test 
-2

我真的不知道@Test註釋如何處理您的測試,但是您可以嘗試在「測試」前添加測試方法的前綴嗎?

public void testInit() throws Exception { 
     driver.get("http://localhost:8080/login.jsp"); 
     ... 
} 
+0

@JUnit 4中引入了測試註釋,在jUnit 3中,每種方法都必須以「test」 – Kennet 2011-01-10 11:13:01

+0

開始,但不幸的是這種方法沒有幫助。 @Test註釋就夠了。 – 2011-01-10 11:48:03

-1

也許是沒用,因爲我的最後一次嘗試,但我剛剛看了一個JUnit 4測試類應該導入org.junit.Test。* 和org.junit.Assert。*被認爲是如此。 由於您沒有Assert導入,因此可能需要快速嘗試以確保...

6

我有同樣的問題。這是由於junit3帶來的testng依賴引起的。只需爲其添加排除聲明並且測試應該可以工作。

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium</artifactId> 
    <version>2.0b1</version> 
    <exclusions> 
    <exclusion> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 
+0

這對我來說也是一樣的......一分鐘前我發現了這個:/ THX man – yoosiba 2011-05-11 21:39:04

0

有類似的問題添加jtestr依賴。事實證明,它的一個依賴關係是junit-3.8.1。我解決了它使用下面

<dependency> 
    <groupId>org.jtestr</groupId> 
    <artifactId>jtestr</artifactId> 
    <exclusions> 
    <exclusion> 
    <groupId>org.testng</groupId> 
    <artifactId>testng</artifactId> 
    </exclusion> 
    </exclusions> 
    <version>0.6</version> 
    <scope>test</scope> 
</dependency> 
11

也許你看到this bug,排除說法,據說這是影響萬無一失2.12而不是2.11?

3

我已將「maven-surefire-plugin」更改爲2.14.1版本(從2開始)。12),它幫助

-1

在我的情況下,我正在使用mvn test -Dtest = MyTest運行單個測試。我的錯誤是,唯一的測試有@test註釋註釋掉,所以junit沒有在文件中找到測試。衛生署!

0

從2.6改爲2.18.1,它仍然可以幫助

0

在pom.xml的建立會話,包括此:

<build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.14.1</version> 
    </plugin> 
    </plugins> 
    </build> 
-1
mvn test -Dtest='xxxx.*Test' -Dmaven.test.failure.ignore=true -DfailIfNoTests=false 

我也滿足同樣的問題,沒有測試已經執行! 我的建議是添加另一個參數-Dmaven.test.failure.ignore=true -DfailIfNoTests=false可以解決它。

0

我有類似的問題。所以我不得不建設項目使用

mvn clean install -DskipTests=True 

然後運行從目錄中測試命令項目的根級其中測試包的POM是居住

mvn test -Dtest=TestClass 

還要確保價值的跳過選項是正確的。例如在我的pom文件中,skip的默認值爲true。

<properties> 
    <skipTests>true</skipTests> 
</properties> 


<build> 
    <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <skip>${skipTests}</skip> 
      </configuration> 
    </plugin> 
</build> 

所以,當我運行Maven的測試,我將它設置爲false

mvn test -Dtest=TestUserUpdate* -DskipTests=false