相关疑难解决方法(0)

有条件地忽略Karma/Jasmine的个别测试

我有一些测试在PhantomJS中失败但在其他浏览器中失败.

我希望在我的监视任务中使用PhantomJS时忽略这些测试(因此新的浏览器窗口不需要关注并且perf更快一点),但在我的标准测试任务和我的CI管道中,我想要所有的测试在Chrome,Firefox等中运行...

我已经考虑了一个文件命名约定,比如foo.spec.dont-use-phantom.js我的Karma配置中的那些,但是这意味着我必须将失败的各个测试分离到他们自己的文件中,将它们与逻辑describe块分开并拥有更多文件奇怪的命名约定通常会很糟糕.

简而言之:

有没有办法可以扩展Jasmine和/或Karma并以某种方式注释单个测试只能运行某些配置?

jasmine karma-runner karma-jasmine

21
推荐指数
3
解决办法
2万
查看次数

如何使用karma + webpack在PhantomJS上调试错误?

我使用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()但是这是我能够去的.

我很感激任何想法,以了解实际发生的事情.

phantomjs karma-runner webpack

8
推荐指数
0
解决办法
336
查看次数