2012-11-08 174 views
2

我想在Eclipse中使用Maven在Web应用程序中使用JUNIT 4.10和Selenium运行测试用例。Selenium Webdriver JUNIT Maven Eclipse运行测试用例失败

我已经创建了一个简单的Java项目,JUNIT测试用例添加了适当的依赖关系。 它的工作原理与Run as a JUNIT Test case完全吻合,但它不能用作Maven测试,所以类似mvn clean test的东西无法正常工作。

这里是我的pom.xml的摘录

<build> 
<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.12.4</version> 
    </plugin> 
</plugins> 

<dependencies> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.10</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.8</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-java</artifactId> 
    <version>2.25.0</version> 
    <type>jar</type> 
    <scope>test</scope> 
</dependency> 

也在这里是我写我的JUnit测试的情况下,

@Test() 
public void testTC101() throws InterruptedException{ 
    driver.get(ADMIN_BASE_URL_QA); 
    driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS); 
    driver.findElement(By.xpath("//*[@id='top30Events']")); 
    WebElement loanModFullEvent = driver.findElement(By.partialLinkText(QA_MOD_FULL_EVENT)); 
    loanModFullEvent.click(); 
    String clickedFullEventId = loanModFullEvent.findElement(By.xpath("..")).getAttribute("id").split("_")[1]; 
    List<WebElement> nearbyEvents = driver.findElements(By.id("nearby_events_" + clickedFullEventId)); 
    ListIterator<WebElement> wIterator = nearbyEvents.listIterator(); 
    WebElement element = null; 
    String registerNowId = null; 
    while(wIterator.hasNext()) { 
     element = wIterator.next().findElement(By.linkText(QA_MOD_NONFULL_EVENT)); 
     element.click(); 
     registerNowId = element.getAttribute("onclick").replaceAll("\\D+", ""); 
    } 
    registerNowId = "top30_" + registerNowId; 
    driver.findElement(By.xpath("//*[@id='" + registerNowId + "']/div[3]/div/a")).click();    
    WebElement dropDownListBox = driver.findElement(By.xpath("//*[@id='list']")); 
    Select clickThis = new Select(dropDownListBox); 
    clickThis.selectByValue("mod"); 
    driver.findElement(By.xpath("//*[@id='situationdropdown']/div/div/div[1]/span/span/span/input")).click(); 
    RegistrationForm.fillFormAndSubmit(); 

} 

守则只是想法,但公关它是在JUnit测试案例中运行,为什么不使用maven。它说测试:0运行:0跳过:0

为什么它不认识测试,我仍然不知道为什么?有人可以帮忙吗?

+0

你有没有把测试类放在src /测试/ java目录?而且,测试班的名字是什么?它必须以测试结束或从开始。 – maba

+0

它符合这两个事情。它结束于“测试” –

+0

任何资源,你可以指导也将在这种情况下有所帮助。 –

回答

2

你说你的测试类名称以测试结束。这不是根据万无一失插件网站的默认模式之一:http://maven.apache.org/plugins/maven-surefire-plugin/examples/inclusion-exclusion.html

**/Test*.java" - includes all of its subdirectories and all java filenames that start with "Test 
**/*Test.java" - includes all of its subdirectories and all java filenames that end with "Test 
**/*TestCase.java" - includes all of its subdirectories and all java filenames that end with "TestCase 
+0

你是目标。它只是解决了我的问题。男人我看到了这个链接,但没有意识到这个帖子的遗憾。 –

+2

没有什么可抱歉的。快乐的编码! – maba