角度8整合测试-Proctrator/Jasmine works、量角器/x27;T

角度8整合测试-Proctrator/Jasmine works、量角器/x27;T,jasmine,protractor,cucumber,angular8,Jasmine,Protractor,Cucumber,Angular8,我正在为我的Angular 8应用程序设置一个简单的e2e测试。我正在尝试学习BDD,所以我尝试用茉莉花替换黄瓜,因为它使用的语言更符合BDD 当我使用Jasmine运行量角器时,测试通过: 这项工作: navigateTo () { return browser.get(browser.baseUrl) as Promise<any>; } 等待量角器与页面同步时出错:“angularJS可测试性和角度可测试性都未定义。” 量角器配置: exports.config =

我正在为我的Angular 8应用程序设置一个简单的e2e测试。我正在尝试学习BDD,所以我尝试用茉莉花替换黄瓜,因为它使用的语言更符合BDD

当我使用Jasmine运行量角器时,测试通过:

这项工作:

navigateTo () {
    return browser.get(browser.baseUrl) as Promise<any>;
}
等待量角器与页面同步时出错:“angularJS可测试性和角度可测试性都未定义。”

量角器配置:

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
  }
};

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

你能检查AngularTestability API的is_stable标志是否为真。如果为真,请检查它变为真需要多长时间。有时,角度网页变为稳定需要更长时间。量角器使用is_stable标志与页面同步。你可以尝试swi切掉它(不建议有角度的页面)但是给它一次机会来指出错误。你可以通过显式设置
browser.ignoresynchronization=true
来完成。现在,你的测试不会等待角度承诺解决。如果这样做有效,那么你应该看到is_stable标志变为true需要多长时间。有时可能有第三方应用程序导致错误网页不稳定。请注意,一个有角度的网页只有在所有承诺都得到解决时才稳定。如果是这种情况,您可以在测试执行之前等待页面稳定

它在茉莉花中而不是黄瓜中起作用的原因很奇怪。也许黄瓜的执行速度比茉莉花快。但我不确定


另外,请在浏览器中将SELENIUM\u PROMISE\u MANAGER设置为false,以便知道是否缺少任何承诺。

能否检查AngularTestability API的is\u stable标志是否为true。如果为true,请检查变为true需要多长时间。有时,角度网页变为稳定需要更长的时间。量角器使用是要与页面同步的稳定标志。您可以尝试将其关闭(不建议用于有角度的页面)但是给它一次机会来指出错误。你可以通过显式设置
browser.ignoresynchronization=true
来完成。现在,你的测试不会等待角度承诺解决。如果这样做有效,那么你应该看到is_stable标志变为true需要多长时间。有时可能有第三方应用程序导致错误网页不稳定。请注意,一个有角度的网页只有在所有承诺都得到解决时才稳定。如果是这种情况,您可以在测试执行之前等待页面稳定

它在茉莉花中而不是黄瓜中起作用的原因很奇怪。也许黄瓜的执行速度比茉莉花快。但我不确定


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

禁用异步有效。我选择放弃量角器,直接使用SELENIUM,cucumberjs-tsflow。禁用异步有效。我选择放弃量角器,直接使用SELENIUM,cucumberjs-tsflow。
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
  }
};