如何使用Protractor创建条件测试用例?

时间:2016-04-18 18:48:20

标签: javascript selenium typescript automated-tests protractor

目前,我有一些测试用例,我只想在某些条件下执行。

it ('user is able to log in', function() {
   if(siteAllowsLogin) {
       .....
   }

使用上面的语法会导致sitesNotAllowingLogin通过此测试。我知道有一个解决方案可以将测试标记为PENDING,但我更倾向于测试没有显示,如果它不适用。

如果可能的话,我还想将逻辑保留在测试用例中。因此,将if块保留在测试用例中。

如果不满足条件,如何跳过此测试的任何建议,以便它不会在结果上显示为PENDING或PASSED。

非常感谢帮助。

1 个答案:

答案 0 :(得分:3)

如果提供的谓词/状态为真,您可以使用前面的ignore函数来抑制测试:

var ignore = function(exp){return{it:((typeof exp==='function')?exp():exp)?function(){}:it}};

describe('Suite 1', function() {

    it("test a", function() {
        expect(1).toEqual(1);
    });

    ignore(true).it("test b", function() {
        expect(1).toEqual(1);
    });

    ignore(skip).it("test c", function() {
        expect(1).toEqual(1);
    });

    function skip(){
      return true;
    }
});