![](/img/trans.png)
[英]Only in Remote Machine TestnG results are not generating ,It's resulting as Total tests run: 0, Failures: 0, Skips: 0
[英]My selenium tests aren't running from either cmd or Jenkins when executed via testng Framework. Results: Total tests run: 0, Failures: 0, Skips: 0
Selenium和自动化的新手。
首先,当我使用Junit进行测试时,我的测试在Eclipse中运行良好。 但是,如果我通过Jenkins或CLI启动测试,则会得到以下结果: 运行的测试总数:0,失败:0,跳过:0
现在,我可能会弄错测试的结构,或者做的事情完全错了。 我四处张望,所有在线解决方案似乎都无法解决我的问题。
我的测试只是一个简单的登录测试。
我想我可能将框架混合在一起或以错误的方式一起使用它们。 我用TestNG踢了我的硒测试中, 我想 。 我再次举起手来,承认我对此并不陌生,所以我希望有人可以告诉我我要去哪里。 我确实在实际的硒测试文件中注意到,我没有使用任何Testng函数或任何东西,而只是使用了硒Web驱动程序。 我在下面列出了我的代码文件以及从测试中得到的结果。
如果我错过了一个简单的步骤,或者我尝试了一些不可能的事情,我再次道歉,我只需要一些帮助或专家的正确指导。 感谢您的任何帮助。
测试
出于安全原因,我已经删除了实际的网址和信用。
package testing;
import static org.junit.Assert.fail;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
public class login {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.gecko.driver","C:\\gecko\\geckodriver.exe");
driver = new FirefoxDriver();
baseUrl = "";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testLogin() throws Exception {
driver.get(baseUrl + "");
driver.findElement(By.id("email")).clear();
d
river.findElement(By.id("email")).sendKeys("");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("");
driver.findElement(By.xpath("//input[@value='Login »']")).click();
}
@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
的testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Sample Suite">
<test name="Learning Jenkins">
<classes>
<class name="testing.login"></class>
</classes>
</test>
</suite>
CLI或Jenkins测试的结果
[TestNG] Running:
C:\Users\keating99\workspace\FdimTests\testng.xml
===============================================
Sample Suite
Total tests run: 0, Failures: 0, Skips: 0
===============================================
Finished: SUCCESS
我再次意识到我在实际测试中没有使用任何Testng,但是测试的目的只是开始使用硒来进行测试。 也许我正在以错误的方式进行操作。
硒测试有效,我可以在Eclipse中启动。
感谢您的任何帮助!
尽管这也许更适合作为注释,但是有几件事需要澄清,因为import org.junit.Test, Before, After, etc
表明您已经编写了JUnit测试,但是您提到的是TestNG,因此它取决于您真正想做的是:
编写JUnit测试并通过TestNG执行它们 :虽然有些奇怪(我要判断谁?!),但根据文档 ,可以通过确保在执行过程中JUnit在类路径中可用并将junit
属性设置为true来实现,例如<test name=name="Learning Jenkins" junit="true">
编写和执行TestNG测试 :用对应的TestNG (例如org.testng.annotations.Test
替换JUnit导入
我再次意识到我在实际测试中没有使用任何Testng,但是测试的目的只是开始使用硒来进行测试。 也许我正在以错误的方式进行操作。
目前,您正在使用JUnit,而不是TestNG :-)。 无论如何,仅通过验证是否没有错误消息,您就可以使用带有fail(verificationErrorString)
方法,尽管您的测试可能不完整。 您应该添加一些断言以检查加载的页面上是否存在任何数据正确。 您可以阅读TestNG-Selenium快速教程或任何其他您想要的文档,那里有大量的文档。 简而言之,“良好/完整”测试至少应该( 这里描述的良好测试的质量-您实际上并不是在编写单元测试,但仍然适用):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.