Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在量角器中仅运行失败的测试_Javascript_Selenium_Protractor - Fatal编程技术网

Javascript 如何在量角器中仅运行失败的测试

Javascript 如何在量角器中仅运行失败的测试,javascript,selenium,protractor,Javascript,Selenium,Protractor,在我的js文件中,我定义了一系列测试用例,其中一些有时会失败,我想重新运行这些失败的测试用例。 任何人都可以建议一些我可以使用的现成功能或其他解决方案?再次运行所有东西真的很不方便,也很耗时。下面的示例可能会向您展示我的规范的外观 describe('Test -> Users table with admin privileges', function () { var EC = protractor.ExpectedConditions; var welcomePage = new W

在我的js文件中,我定义了一系列测试用例,其中一些有时会失败,我想重新运行这些失败的测试用例。 任何人都可以建议一些我可以使用的现成功能或其他解决方案?再次运行所有东西真的很不方便,也很耗时。下面的示例可能会向您展示我的规范的外观

describe('Test -> Users table with admin privileges', function () {
var EC = protractor.ExpectedConditions;
var welcomePage = new WelcomePage();
var usersPage = new UsersPage();

beforeEach(function () {
    LogIn.asAdmin1();
    clickWithWait(welcomePage.usersButton);
    browser.wait(hasNonZeroCount(usersPage.allRows), WAIT_TIMEOUT, 'users list did not appear');
});

afterEach(function () {
    welcomePage.logout();
});

it('verifies counter on active tab', function () {
    browser.wait(EC.elementToBeClickable(usersPage.allRows.first()), WAIT_TIMEOUT, 'firstRow was not visible ');
    usersPage.allRows.count().then(function (count) {
        expect(usersPage.activeTab.getText()).toContain('Active' + ' (' + count + ')');
    });
});

it('verifies counter on archived tab', function () {
    browser.wait(EC.elementToBeClickable(usersPage.allRows.first()), WAIT_TIMEOUT, 'firstRow was not visible ');
    // Initial condition for case of none archived user have to be added here (it will remove if statement).
    clickWithWait(usersPage.archivedTab);
    usersPage.allRows.count().then(function (count) {
        if (count > 0) {
            expect(usersPage.archivedTab.getText()).toContain('Archived' + ' (' + count + ')');
        } else {
            console.log("Test Ignored due to none records")
        }
    });
});

NickTomlin提出了一种较为成熟的解决方案,采用了量角器薄片

量角器薄片是“量角器自动重新运行失败的规格以进行特定次数的尝试的包装器”,请查看以下两个链接以了解如何实现它的步骤:

  • 请注意上面NPM链接下的警告部分:

    *注意事项

    这还没有用量角器+摩卡进行测试。它的功能应该类似。如果不是这样,请更新问题或PR


    如果使用不记录失败测试堆栈跟踪的自定义报告程序,测试将无法正常重新运行(每次都将运行所有测试)。例如,如果您在jasmine 2.0中使用jasmine spec reporter,请确保设置displayStacktrace:“specs”或displayStacktrace:“all”。*

    NickTomlin提出了一个比较成熟的解决方案,它使用了量角器薄片

    量角器薄片是“量角器自动重新运行失败的规格以进行特定次数的尝试的包装器”,请查看以下两个链接以了解如何实现它的步骤:

  • 请注意上面NPM链接下的警告部分:

    *注意事项

    这还没有用量角器+摩卡进行测试。它的功能应该类似。如果不是这样,请更新问题或PR

    如果使用不记录失败测试堆栈跟踪的自定义报告程序,测试将无法正常重新运行(每次都将运行所有测试)。例如,如果您在jasmine 2.0中使用jasmine spec reporter,请确保设置displayStacktrace:“specs”或displayStacktrace:“all”。*

    可能的重复可以帮助:。可能的重复可以帮助:。