量角器重复规格

Protractor repeat specs

我有这样的案例

exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: [
        'test/scenarios/user/login.js',
        'test/scenarios/user/choose_user_1.js',
        'test/scenarios/user/change_user.js',
        'test/scenarios/user/choose_user_2.js',
        'test/scenarios/user/change_user.js',
        'test/scenarios/user/choose_user_3.js',
        'test/scenarios/user/logout.js'
    ]
}

但是量角器不会多次重复使用 change_user.js.. 我必须创建 change_user_1.js 和 change_user_2.js 才能得到我想要的东西。有没有办法停用此行为,或者我应该以不同的方式进行测试?

最好的问候

据我所知,您不能调用同一个脚本两次。我们遇到了类似的问题,这就是我修复它的方法 - 使用 jasmine-data-provider,创建单独的套件而不是脚本,并使用数据提供程序循环遍历它们。以下是我将遵循的步骤 -

  1. 安装 jasmine-data-provider npm 包。
  2. 创建两个 describe 套件,一个用于 choose_user,另一个用于 change_user
  3. 使用 jasmine-data-provider 向这些描述套件传递多个数据。
  4. 每次 choose_user - describe 运行 次,change_user - describe 次 运行 次。

这是一个示例代码 -

var dp = require('../node_modules/jasmine-data-provider'); //Install the npm package and provide its path

//Data provider object to store data that script uses
var objectDataProvider = {
    'Test1': {user1: 'user_1'},
    'Test2': {user1: 'user_2'},
    'Test3': {user1: 'user_3'},
};

//Jasmine Data Provider function automatically loops through the tests - Test1, Test2, Test3
dp(objectDataProvider, function (data) {

    describe('choose_user Test:', function(){
        //Choose User specs that's applicable for one user
        //To use the objectDataProvider data use - data.user1 all the time
    });

    describe('change_user Test:', function(){
        //Change User specs that's applicable for one user
    });

});

此脚本应 运行 choose_userchange_user 规范 3 次,然后您可以继续执行管道中的其余脚本。

希望对您有所帮助。