我通过gulp运行业务测试用例如下:
gulp.task('unit-test-karma',function () { return gulp.src(filePaths.libraryPaths.concat(filePaths.codePathsVerbose.concat(filePaths.testPaths).concat(filePaths.htmlPaths).concat(filePaths.jadePaths))) //.pipe(plumber({ errorHandler: notify.onError(function(error) { console.log(error.message); return "Karma Error"; }) })) .pipe(karma({ configFile: './karma.conf.js',action: 'run',// watch singleRun: true,reporters: [ 'dots' ] })); });
当我以运行的方式运行时,IE 11会抛出错误.
IE 11.0.0 (Windows 10 0.0.0) ERROR 'expect' was used when there was no current spec,this could be because an asynchronous test timed out at C:/BbCAT-WebDI/BbCAT-Web/BbCAT-Angular/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:938
但是如果运行与手表相同的操作,那么在chrome,IE和firefox中成功执行所有测试用例.
看完一些帖子后,似乎有一些问题与$http服务调用,但无法找到从哪里的问题是!
这是一个非常真实的问题,我目前也在经历这个问题.我认为这里有一个核心的bug.我封装测试非常好.它们很小(每个最多3行)
我有一个主要描述部分有2个嵌套描述
首先描述有8个it()函数
第二个有3it()函数.
即
describe("main",()=>{ describe("1st",()=>{ //here are 8 it() definitions }) describe("2nd",()=>{ //here are 3 it() definitions }) })
现在当我从一个描述中删除一个单独的it()定义时,问题消失了.或者,如果我添加第三个describe(),问题消失了.
这是茉莉花中的一个问题 – 他们没有正确地报告错误,或者有一些可怕的错误.或者,可能是通过同时运行多个测试来尝试智能的业力.无论哪种方式,这个问题是真实的,它与凌乱的代码无关.
也许这与被测试的底层单元有关 – 我的函数是递归的(尽管我的测试用例不深入).
karma-jasmine@0.3.8
jasmine-core@2.4.1
karma@0.13.22
phantomjs-prebuilt@2.1.7
karma-phantomjs-launcher@1.0.0