首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 8集成测试- Proctrator/Jasmine工作,Protractor/Cucumber不工作

Angular 8集成测试- Proctrator/Jasmine工作,Protractor/Cucumber不工作
EN

Stack Overflow用户
提问于 2020-01-02 22:35:19
回答 1查看 277关注 0票数 1

我正在为我的Angular 8应用程序设置一个简单的e2e测试。我正在尝试学习BDD,所以我尝试用Cucumber替换Jasmine,因为它使用与BDD更一致的语言。

当我使用Jasmine运行Protractor时,测试通过:

这是可行的:

代码语言:javascript
复制
navigateTo () {
    return browser.get(browser.baseUrl) as Promise<any>;
}

当我运行cucumber版本的测试时,我得到一个错误。

这将失败:

代码语言:javascript
复制
  Given ('Evidentia4 is running', (done) => {
           browser.get (browser.baseUrl)
          .then (done ());
  });

“等待量角器与页面同步时出错:”未定义angularJS可测试性和角度可测试性。“

量角器配置:

代码语言:javascript
复制
exports.config = {
  allScriptsTimeout: 61000,
  getPageTimeout: 60000,
  specs: [
    './src/features/**/*.feature'
  ],
  capabilities: {
    browserName: 'chrome'
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'custom',
  frameworkPath: require.resolve('protractor-cucumber-framework'),
  cucumberOpts: {
    require: 'features/step-definitions/app-step-definitions.js',
    tags: false,
    format: 'node_modules/cucumber-pretty',
    profile: false,
    'no-source': true
  }
};

我已经阅读了这个错误,但不知道为什么我会得到它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-03 00:21:27

你能检查一下AngularTestability接口的is_stable标志是否为真吗?如果是真的,请查看需要多长时间才能变为真。有时候Angular网页需要更长的时间才能稳定下来。量角器使用is_stable标志与页面同步。您可以尝试将其关闭(不建议用于角度页面),但可以尝试使用它来定位错误。您可以通过显式设置browser.ignoreSynchronisation = true来完成此操作。现在,您的测试将不会等待Angular承诺的解析。如果这是可行的,那么您应该看到is_stable标志需要多长时间才能变为真。有时可能存在导致网页不稳定的第三方应用程序。请注意,只有当所有承诺都得到解决时,角度网页才是稳定的。如果是这种情况,您可以在执行测试之前等待页面稳定下来。

然而,它在茉莉而不是黄瓜中起作用的原因很奇怪。也许黄瓜比茉莉执行得更快。不过我不太确定。

另外,请在您的浏览器中将SELENIUM_PROMISE_MANAGER设置为false,以便您知道是否缺少任何承诺。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59565102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档