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) で browser パラメーターを使用してみましたが、これは機能せず、私が理解していることからも必要ではないはずです。デフォルト。また、エラー メッセージ自体を Web で検索しましたが、得られる唯一の結果は 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>