0

私は今、かなり行き詰まっています。コードが必要に応じて機能しない理由がわかりません。実際のところ、新しいテストが作成されるたびに、Firefox が閉じられ、再度開かれます。それは私のテストが実現するのに何年もかかります...私が間違っていることを教えてもらえますか?

public class SeleniumTestLoginEntry extends SeleneseTestCase {

    private String login="scLocator=//DynamicForm[ID=\"formulaire_login\"]/item[index=0||Class=TextItem]/element";
    private String passwd="scLocator=//DynamicForm[ID=\"formulaire_login\"]/item[index=1||Class=PasswordItem]/element";
    static public DefaultSelenium selenium;

    public void setUp() throws Exception {
        selenium = new DefaultSelenium("localhost", 4500, "*firefox", "http://localhost:9091/");
        selenium.start();
    }

    public void testFields() throws Exception {
        selenium.open("/agepro-prototype/login/Login.html");
        selenium.type(login, "Unlogin");
        selenium.type(passwd, "Unpassword");
        Assert.assertEquals("Unlogin", selenium.getValue(login));
        Assert.assertEquals("Unpassword", selenium.getValue(passwd));
        selenium.click("scLocator=//ImgButton[ID=\"bouton_login\"]/");
    }

    public void testSameWindow() throws Exception {
        selenium.open("/agepro-prototype/login/Login.html");
        selenium.type(login, "truc");
        Assert.assertEquals("truc", selenium.getValue(login));
    }

    public void tearDown() throws Exception {
        selenium.stop();
    }
}

setUp() と tearDown の前に @BeforeClass と @AfterClass のアノテーションを付けようとしましたが、何も変わりません。各テストの前に @Test があった前に、これはまったく役に立ちません。助けてもらえますか?=)

編集:ああ、私は setUp() で selenium.open(blablabla) を試しましたが、直接テストではなく、同じ問題で何も変わりません。

4

1 に答える 1

0

注釈を使用しない場合、 setUp() はすべてのテストの前に (つまり 2 回) 実行されます。

きれいではありませんが、最初のテスト (1 回だけ実行される) を作成し、インスタンス化を setUp() から新しい test() に移動できます。ただし、セレン インスタンスの作成に失敗すると、その後のすべてのテストも失敗することに注意してください。良くない:)

于 2012-05-25T08:26:38.307 に答える