0

我正在使用 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>
4

0 回答 0