我有一些测试在PhantomJS中失败但在其他浏览器中失败.
我希望在我的监视任务中使用PhantomJS时忽略这些测试(因此新的浏览器窗口不需要关注并且perf更快一点),但在我的标准测试任务和我的CI管道中,我想要所有的测试在Chrome,Firefox等中运行...
我已经考虑了一个文件命名约定,比如foo.spec.dont-use-phantom.js我的Karma配置中的那些,但是这意味着我必须将失败的各个测试分离到他们自己的文件中,将它们与逻辑describe块分开并拥有更多文件奇怪的命名约定通常会很糟糕.
简而言之:
有没有办法可以扩展Jasmine和/或Karma并以某种方式注释单个测试只能运行某些配置?
我使用Chrome和PhantomJS作为浏览器运行业力.使用Chrome,我没有错误; 使用PhantomJS我得到了这个:
PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
TypeError: undefined is not a constructor (evaluating 'action(dstObject[propName], srcObject[propName])')
at webpack:///~/my-library/dist/my-library.full.js:94:0 <- index.js:10919
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 0 of 0 SUCCESS (0 secs / 0 secs)
TOTAL: 0 SUCCESS
Run Code Online (Sandbox Code Playgroud)
基本上,我的测试没有运行,因为有一些事情my-library,这是一个节点依赖.我的问题是:如何调试此错误?
我正在调用业力,karma start test/unit/karma.conf.js在那里我可以看到files:['./index.js'],当我查看这个文件时,我看到了这个:
// require all test files (files that ends with .spec.js)
const testsContext = require.context('./specs', true, /\.spec$/)
testsContext.keys().forEach(testsContext)
Run Code Online (Sandbox Code Playgroud)
require.context是一个webpack函数,它创建一个上下文加载我的spec文件,这些文件由返回testsContext.keys()但是这是我能够去的.
我很感激任何想法,以了解实际发生的事情.