angular - Protractor - 在每次测试之前和之后运行代码

标签 angular protractor e2e-testing

我需要在每次测试之前运行一些代码。 如果我有一个单一的规范文件,例如,这可能是一个简单的解决方案main.e2e.ts 但为大型应用程序制作一个规范文件听起来太脏了。

我将测试分成多个规范文件(例如 login.e2e.tsdashboard.e2e.ts),但我想在每个测试之前和之后运行一些代码每个,无论规范文件如何。

我发现使用 beforeEach(() => {}afterEach(() => {} 是可能的,我现在正在这样做在每个文件中。但我相信这种方法必须有一些更漂亮的解决方案。

有没有办法在使用多个规范文件时在每个 it 之前和之后运行代码?

最佳答案

如果您有公共(public)且共享的 before 和 after 方法,则可以将其写入公共(public)文件。然后将这些函数导入到规范文件中,并在 beforeEachbeforeAllafterEachafterAll 中调用它们。我用 TypeScript 编写了以下内容。

common.ts

// import some protractor global objects
import { browser } from 'protractor';

export let beforeMethod = () => {
  // do some method
  browser.get('/');
}

export let beforeAsyncMethod = (done) => {
  // do something that is async
  done();
}

export let afterMethod = () => {
  // do some method
}

登录.e2e-spec.ts

import { beforeMethod, beforeAsyncMethod, afterMethod } from './common';

describe('login', () => {
  // do some setup
  beforeEach( beforeMethod );
  beforeEach( beforeAsyncMethod );

  it('should do your test', () => {
    // your amazing test.
  });

  afterEach( afterMethod );
});

关于angular - Protractor - 在每次测试之前和之后运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43779235/

相关文章:

angular - 根据先前操作的结果有条件地调度操作

javascript - 带有 Angular 9 的 ionic 5 : How to Print from Desktop (not mobile device)

typescript - 如何在服务中注入(inject)Document?

javascript - Testcafe 如何读取 json 响应并选择第一项并将其传递给选择器

google-chrome - Cypress.io - 函数访问需要很长时间,正在等待所有资源加载完毕

css - 如何调整工具提示的位置

javascript - 如何让 Jasmine 测试加载数据并以正确的顺序执行

javascript - Protractor AngularJS 计数、复制和验证列表跨度

angular - 如何检测angular2 web应用程序处于测试模式

javascript - 从 Protractor 的右键菜单中选择翻译选项