我有一些测试在 PhantomJS 中失败,但在其他浏览器中则不然。
我希望在我的监视任务中使用 PhantomJS 运行时忽略这些测试(因此新的浏览器窗口不会获得焦点并且性能更快一点),但在我的标准测试任务和 CI 管道中,我想要all在 Chrome、Firefox 等中运行的测试...
我考虑过像这样的文件命名约定foo.spec.dont-use-phantom.js
并排除我的 Karma 配置中的那些,但这意味着我必须将失败的各个测试分离到自己的文件中,将它们与逻辑分开describe
块并拥有更多具有奇怪命名约定的文件通常会很糟糕。
简而言之:
有没有办法可以以某种方式扩展 Jasmine 和/或 Karmaannotate单独的测试仅在某些配置下运行?
茉莉花支持pending()
功能。
如果你打电话pending()
在规范正文中的任何位置,无论期望如何,规范都将被标记为待处理。
您可以致电pending()
直接在 test 中,或者在 test 调用的其他函数中。
function skipIfCondition() {
pending();
}
function someSkipCheck() {
return true;
}
describe("test", function() {
it("call pending directly by condition", function() {
if (someSkipCheck()) {
pending();
}
expect(1).toBe(2);
});
it("call conditionally skip function", function() {
skipIfCondition();
expect(1).toBe(3);
});
it("is executed", function() {
expect(1).toBe(1);
});
});
工作示例在这里:http://plnkr.co/edit/JZtAKALK9wi5PdIkbw8r?p=preview http://plnkr.co/edit/JZtAKALK9wi5PdIkbw8r?p=preview
我认为这是最纯粹的解决方案。在测试结果中,您可以看到已完成和跳过的测试的计数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)