当没有当前的规范时,使用了angularjs – ‘expect’,这可能是因为异步测试在Jasmine 2.3.1中超时

前端之家收集整理的这篇文章主要介绍了当没有当前的规范时,使用了angularjs – ‘expect’,这可能是因为异步测试在Jasmine 2.3.1中超时前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我通过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

猜你在找的Angularjs相关文章