当使用"基础"这个词时,业力和茉莉花的奇怪行为

Gia*_*rco 5 jasmine phantomjs karma-runner karma-jasmine

我在这里寻求帮助,因为我无法达成解决方案,而且我花了很多时间在这上面.

问题是业力+茉莉花测试中的一个奇怪的行为,最初我认为问题出在AngularJs代码中,但是通过剥离剥离我达到了没有其他东西可以去除的问题,并且问题是100%没有角度.

我正在使用的实际代码是:

test.js:

'use strict';

describe('Unit tests suite', function () {
    it('test', function () {
        expect('base').toEqual('');
    });
});
Run Code Online (Sandbox Code Playgroud)

karma.conf.js:

module.exports = function (config) {
    config.set({
        basePath: '',
        frameworks: ['jasmine'],
        files: ['*.js'],
        exclude: [],
        preprocessors: {},
        reporters: ['progress'],
        port: 9876,
        colors: true,
        logLevel: config.LOG_INFO,
        autoWatch: true,
        browsers: ['PhantomJS'],
        singleRun: false,
    })
}
Run Code Online (Sandbox Code Playgroud)

绝对没有别的.该测试的结果是:

13 02 2016 04:32:39.559:WARN [karma]: No captured browser, open http://localhost:9876/
13 02 2016 04:32:39.571:INFO [karma]: Karma v0.13.15 server started at http://localhost:9876/
13 02 2016 04:32:39.578:INFO [launcher]: Starting browser PhantomJS
13 02 2016 04:32:41.248:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket HiC4WW_4235Nlf0rAAAA with id 54292207
PhantomJS 2.1.1 (Mac OS X 0.0.0) Unit tests suite test FAILED
    Expected '/Users/Gianmarco/Desktop/test' to equal ''.
    /Users/Gianmarco/Desktop/test/test.js:5:31
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.003 secs / 0.003 secs)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,"base"这个词似乎随着文件夹的路径而改变.这让我疯了,我无法弄清楚为什么会这样做.

我尝试使用MacOSX和Ubuntu 14.04,结果是一样的.

准备文件夹我做了这个:

mkdir test
cd test
npm install jasmine-core karma-cli karma-jasmine karma-phantomjs-launcher phantomjs-prebuilt --save
karma init
karma start
Run Code Online (Sandbox Code Playgroud)

当然我的系统还有npm install karma-cli -g一段时间了.

版本是:

jasmine-core@2.4.1
karma@0.13.21
karma-cli@0.1.2
karma-jasmine@0.3.7
karma-phantomjs-launcher@1.0.0
phantomjs-prebuilt@2.1.4
Run Code Online (Sandbox Code Playgroud)

使用单词absolute获得相同的行为,用空字符串替换

小智 2

我相信这是业力(进展)中默认报告器的问题,它似乎 URL_REGEX 匹配基本和绝对,因为所有其余的正则表达式都是可选的。

var URL_REGEXP = new RegExp('(?:https?:\\/\\/[^\\/]*)?\\/?' +
    '(base|absolute)' + // prefix
    '((?:[A-z]\\:)?[^\\?\\s\\:]*)' + // path
    '(\\?\\w*)?' + // sha
    '(\\:(\\d+))?' + // line
    '(\\:(\\d+))?' + // column
    '', 'g')
Run Code Online (Sandbox Code Playgroud)

https://github.com/karma-runner/karma/blob/684ab1838c6ad7127df2f1785c1f56520298cd6b/lib/reporter.js#L25