茉莉因果报应。在特定数量的测试后测试失败(页面重新加载错误)
Jasmine Karma . Test failing after a specific number of tests(page reload error)
我正在使用 karma jasmine 测试一个 angular 应用程序,我有大约 10 个规范文件,总共有 10 个描述和 48 个测试用例。问题是,只要测试用例超过 47,我就会收到错误消息,错误说,一些测试重新加载了整页。我尝试通过注释掉随机测试用例并将其限制为 47 ,然后它工作正常。即使是空白的第 48 个测试用例也会出现错误,
"jasmine-core": "^2.4.1",
"jshint-stylish": "^1.0.0",
"karma": "^0.13.21",
"karma-chrome-launcher": "^0.2.2",
"karma-coverage": "^0.5.3",
"karma-firefox-launcher": "^0.1.7",
"karma-jasmine": "^0.3.7",
"karma-ng-html2js-preprocessor": "^0.2.1",
"karma-phantomjs-launcher": "^1.0.0",
这是我的 karma 版本和相关依赖项。
它与您的一项或多项测试重新加载有关。不幸的是,业力并没有告诉你是哪个。
这是来自这个 issue 的解决方案。
1) 运行 您的应用程序包含以下代码,然后 DevTools(Chrome,在本例中)打开。
console.profile('cause of reload');
window.addEventListener('beforeunload', function() {
console.profileEnd('cause of reload');
debugger;
});
如果您正在寻找的重新加载发生,您应该被带到 Chrome Devtools 的 "Sources" 视图,应用程序暂停在调试器行。
2) 导航至 "Profiles" 选项卡并选择 "Charts" 视图。
3) Command+F 并搜索 "location".
4) 使用搜索框中的向上和向下箭头跳转到该短语的最后出现的匹配项。
5) 在搜索字段中按回车键跳转到匹配项。
6) 回顾调用堆栈以查找您认识的代码。
归功于 JamieMason
我只是使用带有 href 的锚标记,但因为重新加载它对我来说也会失败 “您的一些测试做了整页重新加载!”。我想测试在点击过程中调用的函数,所以这是我在测试中的解决方案:
const link = fixture.debugElement.query(By.css('a'));
link.triggerEventHandler('click', null);
问题在于:
link.click();
这样您就可以在不导航和刷新页面的情况下触发点击。
我正在使用 karma jasmine 测试一个 angular 应用程序,我有大约 10 个规范文件,总共有 10 个描述和 48 个测试用例。问题是,只要测试用例超过 47,我就会收到错误消息,错误说,一些测试重新加载了整页。我尝试通过注释掉随机测试用例并将其限制为 47 ,然后它工作正常。即使是空白的第 48 个测试用例也会出现错误,
"jasmine-core": "^2.4.1",
"jshint-stylish": "^1.0.0",
"karma": "^0.13.21",
"karma-chrome-launcher": "^0.2.2",
"karma-coverage": "^0.5.3",
"karma-firefox-launcher": "^0.1.7",
"karma-jasmine": "^0.3.7",
"karma-ng-html2js-preprocessor": "^0.2.1",
"karma-phantomjs-launcher": "^1.0.0",
这是我的 karma 版本和相关依赖项。
它与您的一项或多项测试重新加载有关。不幸的是,业力并没有告诉你是哪个。
这是来自这个 issue 的解决方案。
1) 运行 您的应用程序包含以下代码,然后 DevTools(Chrome,在本例中)打开。
console.profile('cause of reload');
window.addEventListener('beforeunload', function() {
console.profileEnd('cause of reload');
debugger;
});
如果您正在寻找的重新加载发生,您应该被带到 Chrome Devtools 的 "Sources" 视图,应用程序暂停在调试器行。
2) 导航至 "Profiles" 选项卡并选择 "Charts" 视图。
3) Command+F 并搜索 "location".
4) 使用搜索框中的向上和向下箭头跳转到该短语的最后出现的匹配项。
5) 在搜索字段中按回车键跳转到匹配项。
6) 回顾调用堆栈以查找您认识的代码。
归功于 JamieMason
我只是使用带有 href 的锚标记,但因为重新加载它对我来说也会失败 “您的一些测试做了整页重新加载!”。我想测试在点击过程中调用的函数,所以这是我在测试中的解决方案:
const link = fixture.debugElement.query(By.css('a'));
link.triggerEventHandler('click', null);
问题在于:
link.click();
这样您就可以在不导航和刷新页面的情况下触发点击。