【问题标题】:How to run a single specific test case when using protractor使用量角器时如何运行单个特定的测试用例
【发布时间】:2014-07-02 16:37:50
【问题描述】:

我在我的应用程序中使用量角器进行 Angular js 测试,目前大约有 19 个测试用例,其中一个失败了

describe('Login page', function() {

beforeEach(function() {
  browser.ignoreSynchronization = true;
  ptor = protractor.getInstance();
});

it('should contain navigation items', function(){
  //test case code here
});

it('should login the user successfully', function(){ 
  //test case code here
})
});

目前,我运行所有的测试用例。但是,我怎样才能只运行一个测试用例来调试一个问题,例如一个描述为“登录页面应该成功登录用户”的问题?

【问题讨论】:

  • 我发现我们可以使用量角器中的 --specs 选项在单个文件中运行规范。有什么方法可以只运行一个测试用例?

标签: angularjs integration-testing protractor


【解决方案1】:

Jasmine 在 2.1 中添加了 fitfdescribe 用于运行单个测试或描述块。

http://pivotallabs.com/new-key-features-jasmine-2-1/

此功能几乎在 2.0 版本中实现。现在够了 提供功能以支持适合和 fdescribe 的重点规范 和套件运行。

从 2.1 git lib/jasmine-core/jasmine.js

var jasmineInterface = {
describe: function(description, specDefinitions) {
  return env.describe(description, specDefinitions);
},

xdescribe: function(description, specDefinitions) {
  return env.xdescribe(description, specDefinitions);
},

fdescribe: function(description, specDefinitions) {
  return env.fdescribe(description, specDefinitions);
},

it: function() {
  return env.it.apply(env, arguments);
},

xit: function() {
  return env.xit.apply(env, arguments);
},

fit: function() {
  return env.fit.apply(env, arguments);
},

【讨论】:

  • 接受的答案和问题是旧的,它们适用于 jasmine 1.x
【解决方案2】:

Protractor 的最新版本(至少)支持通常的 Jasmine 方法:将 describe() 函数重命名为 ddescribe(),并且只有其中的测试会运行。或者将it() 函数重命名为iit(),并且只有这个测试会运行。

【讨论】:

  • 谢谢!它对我有用。但是,我确实看到的一个问题是,当我运行测试时,它实际上只执行一个测试用例。我可以通过断言计数和查看 UI 来说明这一点。但是,报告显示它确实运行了套件中的所有测试。
  • 例如:我的报告显示“8 个测试,1 个断言,0 个失败”,当我有一个测试用例的 iit 和“8 个测试,20 个断言,0 个失败”时,当我运行所有其中没有 iit。当我们添加 iit 时,有什么方法可以使测试数显示为“1 个测试,1 个断言 0 失败”?
  • 即使在添加了 ddescribe 之后,量角器仍在运行 y 套件中的所有规范。有什么想法.. ??
  • 哇,这对我来说真是太糟糕了,出乎意料……但它确实有效:)谢谢!
  • 对于使用 jasmine 2.1 或更新版本的任何人,请查看贾斯汀的答案。您现在使用 fit 和 fdescribe。
【解决方案3】:

也许您应该将测试分成不同的套件。然后你可以运行: protractor test/protractor-conf.js --suite 示例

【讨论】:

    【解决方案4】:

    你可以使用--grep。

    protractor conf.js --grep='name of your test case'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多