在量角器中所有测试套件之前运行一些功能



在运行量角器中的任何套件之前,是否可以运行一些测试或逻辑流?

例如,我想将我的量角测试分成一系列套件,以测试我的应用程序的不同方面。假设Jenkins将在部署前运行整个测试套件,但是个人开发人员只会运行与他们所做的工作有关的套件。

,但我希望我的大多数套房能够登录应用程序,并且我宁愿在每个套件中重复该登录逻辑。有没有办法进行套房的预测试,该测试在运行所有测试之前进行登录之类的东西?

我想只是在列出我在量角配置中定义我的套件的位置

suites: {
  'my-profile': [
    './e2e/login/login-as-customer.e2e-spec.js',
    './e2e/my-profile/my-profile-change-password.e2e-spec.js',
    './e2e/my-profile/my-profile-change-username.e2e-spec.js'
  ],
  'my-contacts': [
    './e2e/login/login-as-customer.e2e-spec.js',
    './e2e/my-contacts/add-contact.e2e-spec.js',
    './e2e/my-contacts/remove-contact.e2e-spec.js'
  ]
}

,但是问题是我不希望每次运行整个测试套件时,或者开发人员想要一起运行多个套件时,我不希望它每次重新加入。我需要的是以某种方式的套房步骤。

量角器是否可以?

您正在查找conf文件中的 onPrepare()函数。该功能在测试套件之前运行。这是一个示例,摘自https://github.com/angular/protractor/blob/master/spec/withloginconf.js

onPrepare: function() {
    browser.driver.get(env.baseUrl + '/ng1/login.html');
    browser.driver.findElement(by.id('username')).sendKeys('Jane');
    browser.driver.findElement(by.id('password')).sendKeys('1234');
    browser.driver.findElement(by.id('clickme')).click();
    // Login takes some time, so wait until it's done.
    // For the test app's login, we know it's done when it redirects to
    // index.html.
    return browser.driver.wait(function() {
      return browser.driver.getCurrentUrl().then(function(url) {
        return /index/.test(url);
      });
    }, 10000);
  }

最新更新