如何在量角器的套件之间共享相同的测试用例

时间:2018-06-29 12:30:46

标签: javascript angular selenium jasmine protractor

我有一些测试用例,可以在测试套件之间共享

假设套件x和套件y共享同一组测试用例(它起作用)。

我制作了一个单独的.js文件,该文件具有如下所示的共享代码。

module.exports = function(a,b){
//...
test cases..
//....
}

我正在尝试在x和y中使用此模块

这是x的样子

var common = require('./module');

describe("description", module(a,b);

可以做到吗?还有其他办法吗?

我的代码中常见的js看起来像

module.exports = function(a,b) {

beforeAll(function(){
//some code
}
afterAll(function(){
//some code
}

It(‘ads’, function(){
code
}

it(‘ads’, function(){
code
}

it(‘ads’, function(){
code
}


}

我想在其他两个套件中将其用作带有可传递参数的describe函数的函数参数。

Suite1

var common = ('./common');
describe('this is a test case', common(a,b);

这可能吗?

2 个答案:

答案 0 :(得分:1)

如果您的common.js文件类似于...

module.exports = function(a,b){
//...
test cases..
//....
}

还有您的test.js文件:

var common = require('./common'); // <-- note the change

describe("description", common); // <-- you were calling module*

这是假设您common.js导出的函数是格式正确的describe函数。

您还可以导出单个测试用例,例如(other.js)...

module.exports = {
    testOne: function(something) { return false; },
    testTwo: function(whatever) { return true; }
}

还有您的测试...

var other = require('./other');

describe("description", function() {
    it('should pass', function() {
        expect(other.testOne()).toEqual(false);
    });
});

答案 1 :(得分:0)

据我所知,您不能直接从另一个文件运行“它”。但是,您可以运行函数,并且函数可以执行“它”可以执行的所有操作。例如:

Helper.js (这是您的功能文件)

export class helper{
  static itFunctionOne(){
    //Test code goes here
  }
  static itFuncitonTwo(){
    //Test code goes here
  }
}

然后在您的测试中
测试1:

const helper = require('relative/path/to/file/helper.js');
describe('Doing test 1 stuff',function(){
  it('Should run test',function(){
    helper.itFunctionOne();
    helper.itFunctionTwo();
  }
}

测试2:

const helper = require('relative/path/to/file/helper.js');
describe('Doing test 2 stuff',function(){
  it('Should run test',function(){
    helper.itFunctionOne();
    helper.itFunctionTwo();
  }
}