我正在使用 Jenkins 设置一个测试套件以在持续集成系统中运行,但我在运行测试时遇到了一些问题。
当我尝试执行我的套件时,此消息会显示在每个测试用例的控制台日志中:
okt 26, 2016 12:34:40 EM com.codeborne.selenide.impl.WebDriverThreadLocalContainer getWebDriver
INFO: No webdriver is bound to current thread: 1 - let's create new webdriver
因为它实际上并没有最终创建一个新的 WebDriver,所以测试用例立即失败,然后转到下一个,创建 WebDriver 失败,测试失败,等等。
现在这就是奇怪的地方。当我使用 NetBeans(使用 Maven)在本地运行测试时,我收到相同的消息,但实际上创建了 WebDriver 并运行我的测试用例。
我在 Jenkins 中的 Maven 目标如下:
-DfailNoTests=false -Dtest=MyTestClass install
我完全不知道是什么原因造成的。我已经尝试在我的 Maven 目标(-Dselenide.browser=firefox)中使用浏览器参数,但这不起作用,而且据我了解甚至不是必需的,除非在需要指定 WebDriver 的情况下默认值。我还在网上搜索了错误消息本身,但我似乎得到的唯一结果是 Selenide 的源代码。
Jenkins 肯定设置正确,因为我的同事可以毫无问题地运行他们的测试,所以我的代码肯定有问题,但我不知道是什么问题。这是我的代码片段以及我的导入:
package tests;
import static org.junit.Assert.*;
import static com.codeborne.selenide.Condition.visible;
import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.open;
import static com.codeborne.selenide.Selenide.page;
import static com.codeborne.selenide.WebDriverRunner.url;
import ForgotPasswordPage;
import LogInPage;
import ForgotPasswordValues;
import LogInValues;
import static org.hamcrest.CoreMatchers.containsString;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class LogInPageUITest {
public LogInPageUITest() {
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
open("http://example.com/login");
}
@After
public void tearDown() {
}
LogInPage logInPage = page(LogInPage.class);
ForgotPasswordPage forgotPasswordPage = page(ForgotPasswordPage.class);
@Test
public void testCheckFooter(){
$(logInPage.getLogInFooter().shouldBe(visible));
String footerURL = logInPage.getLogInFooter().innerHtml();
assertEquals(footerURL, LogInValues.LOGIN_FOOTER_LINK_URL);
logInPage.getLogInFooter().click();
assertEquals(url(), LogInValues.LOGIN_FOOTER_LINK_URL);
}
}
任何帮助表示赞赏。
编辑:这是我的 pom.xml 文件,如果有帮助的话:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mygroup</groupId>
<artifactId>qa-uitests</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.6</version>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<dependencies>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>3.11</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>2.53.1</version>
<type>jar</type>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<name>qa-uitests</name>
</project>