1

「Assert」オプションではなく、Selenium で「Verify」オプションを使用することをしばらく試みてきました。私の考えでは、検証オプションを使用すると、テストを完全に実行してからエラーのリストを取得できるということです。そうしようとして、「コード的に」VerifyオプションはAssertと同じですが、try-catchブロックに囲まれているだけであることに気付きました。これを機能させるためにさまざまなオプションを試しましたが、直面している問題は、エラーのリストを提供するのではなく、壊れたステートメントでテストが停止することです。

私の構造は次のとおりです。

public class SelTests {

    public StringBuffer verificationErrors = new StringBuffer();
    public WebDriver driver;

    @BeforeTest
    public void setup() throws Exception {
        // DO SETUP STUFF
    }

    @Test
    public void TestScript1() throws Exception {

    try { //assertEquals("string1", "string2") } catch (Exception e) {verificationErrors.append(e.toString());}
    try { //assertEquals("string1", "string2") } catch (Exception e) {verificationErrors.append(e.toString());}
    try { //assertEquals("string1", "string2") } catch (Exception e) {verificationErrors.append(e.toString());}

    @AfterTest
    public void tearDown() throws Exception{

        driver.close();

        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
            fail(verificationErrorString);
            System.out.println(verificationErrorString);    
        }    
    }

しかし、これをさまざまな方法で変更した後でも、まだ同じ問題があります。また、上記のコードのように assert ステートメントを個別に行うのではなく、ブロック全体を囲んでみましたが、何も機能しません。いくつかのアサーションで故意にエラーを導入していますが、毎回 1 つのエラーのログを取得します。

環境:

Selenium 2.30 Server-standalone
TestNG annotations and frameworks
Java code using WebDriver implementations
Eclipse
Windows 7 - 64bit (this should not matter though)

私が実装しようとしていることを達成するために私を導く助けがあれば、大歓迎です。

ありがとう、

アリスター

4

1 に答える 1

3

catch ブロックに行かない理由は、アサートが AssertionErrors をスローするためです。エラーは例外とは異なります。例外をキャッチしているときは、AssertionError をキャッチしていません。catch ブロックの Exception e を AssertionError または Throwable に変更します。これは、例外またはエラーを意味します。

于 2013-02-28T04:15:45.777 に答える