昨日、cucumber-jvmのHTMLフォーマッターが機能していました。今日、テストを実行すると、index.htmlに次のコンテンツが生成されます。他のすべてのサポートファイル(style.css、formatter.jsなど)は次のとおりです。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Cucumber Features</title>
<link href="style.css" rel="stylesheet">
<script src="jquery-1.6.4.min.js"></script>
<script src="formatter.js"></script>
<script src="report.js"></script>
</head>
<body>
<div class="cucumber-report"></div>
</body>
</html>
report.jsファイルには、実行したばかりのテストの正しいコンテンツが含まれていますが、index.htmlファイルを表示すると、ブラウザーによって空白のページが表示されます。すべてを接続するために、単純なテストを実行しています。私のテストクラスは次のようになります。
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"html:build/reports/tests/cucumber"})
public class BasicUITest {
}
私が言ったように、私のテストはうまく実行されます。junit xmlの出力を見ることができ、それは正しいです(実際には、失敗したテストを失敗として登録しないという事実は別として、それは別の問題です)。
コンテンツがhtmlファイルに入らないように、構成に対して何ができたでしょうか。
完全を期すために、ここに私のステップ定義ファイルがあります:
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.SeleneseTestBase;
import cucumber.annotation.After;
import cucumber.annotation.Before;
import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then;
public class StepDefinitions extends SeleneseTestBase {
@Before
public void initSelenium() throws Exception {
selenium = new DefaultSelenium("localhost", 5555, "*firefox", "http://localhost:8080/");
selenium.start();
}
@After
public void stopSelenium() throws Exception {
selenium.stop();
}
@Given("^I login as \"([^\"]*)\" with password \"([^\"]*)\"$")
public void login(String user, String password) {
selenium.open("/web/guest/real-login?p_p_state=maximized&p_p_mode=view&saveLastPath=0&_58_struts_action=%2Flogin%2Flogin&p_p_id=58&p_p_lifecycle=0&_58_redirect=http%3A%2F%2Flocalhost%3A8080%2Fc");
selenium.waitForPageToLoad("30000");
selenium.type("id=_58_login", user);
selenium.type("id=_58_password", password);
selenium.click("css=input.small");
selenium.waitForPageToLoad("30000");
selenium.click("css=input.highlight");
selenium.waitForPageToLoad("30000");
}
@Given("^I login as the \"([^\"]*)\" user$")
public void loginAsUser(String user) {
if (user.equalsIgnoreCase("msv admin")) {
login(TestData.getAdminUserEmail(), TestData.getSharedPassword());
} else if (user.equalsIgnoreCase("msv regular")) {
login(TestData.getRegularUserEmail(), TestData.getSharedPassword());
} else if (user.equalsIgnoreCase("msv executer")) {
login(TestData.getExecuterUserEmail(), TestData.getSharedPassword());
}
}
@Then("^I go to the MSV App page$")
public void gotoMSVPage() {
selenium.click("link=" + TestData.getCommunityPageName());
selenium.waitForPageToLoad("30000");
}
@Then("^I logout$")
public void logout() {
selenium.click("link=Sign Out");
selenium.waitForPageToLoad("30000");
}
@Then("^I should see \"([^\"]*)\"$")
public void shouldSee(String value) {
verifyTrue(selenium.isTextPresent(value));
checkForVerificationErrors();
}
@Then("^I should not see \"([^\"]*)\"$")
public void shouldNotSee(String value) {
verifyFalse(selenium.isTextPresent(value));
checkForVerificationErrors();
}
}
それが違いを生むのであれば、私はそれをgradle 1.0で実行しています(昨日は機能していたのでそうは思いません)。
どんな助けでも大歓迎です。