SpecReporter 不是茉莉花上的构造函数错误

Mic*_*hal 2 node.js jasmine jasmine-spec-reporter

我尝试使用 node.js 在 jasmine 上配置简单的项目。我得到以下文件:

/*global jasmine */
 var SpecReporter = require('jasmine-spec-reporter');

exports.config = {
    allScriptsTimeout: 11000,
    specs: [
        '**/*.testdev.ts'
     ],
    capabilities: {
        'browserName': 'chrome'
    },
    directConnect: true,
    baseUrl: 'foo',
    framework: 'jasmine',
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 60000,
        print: function() {}
    },
    useAllAngular2AppRoots: true,
     beforeLaunch: function() {
         require('ts-node').register({
            project: 'e2e'
             });
        },
    onPrepare: function() {
    jasmine.getEnv().addReporter(new SpecReporter());
    }
};
Run Code Online (Sandbox Code Playgroud)

然后是一个测试文件:

import {} from 'jasmine';
describe ("test", function() {
  it ("should work", function() {
      console.log('============ Main Workflow file starts');
  });
});
Run Code Online (Sandbox Code Playgroud)

我在运行时收到错误npm test

C:\newcheckproject>npm test

> newcheck@1.0.0 test C:\\newcheckproject
> protractor

(node:7492) DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[12:47:12] I/launcher - Running 1 instances of WebDriver
[12:47:12] I/direct - Using ChromeDriver directly...
[12:47:15] E/launcher - Error: TypeError: SpecReporter is not a constructor
at onPrepare (C:\Users\OSP\WebstormProjects\newcheckproject\protractor.conf.js:30:38)
at q_1.Promise (C:\Roaming\npm\node_modules\protractor\lib\util.ts:48:39)
at Function.promise (C:\Roaming\npm\node_modules\protractor\node_modules\q\q.js:682:9)
at Object.runFilenameOrFn_ (C:\Roaming\npm\node_modules\protractor\lib\util.ts:39:10)
at plugins_.onPrepare.then (C:\Roaming\npm\node_modules\protractor\lib\runner.ts:103:21)
at _fulfilled (C:\Roaming\npm\node_modules\protractor\node_modules\q\q.js:834:54)
at self.promiseDispatch.done (C:\Roaming\npm\node_modules\protractor\node_modules\q\q.js:863:30)
at Promise.promise.promiseDispatch (C:\Roaming\npm\node_modules\protractor\node_modules\q\q.js:796:13)
at C:\Roaming\npm\node_modules\protractor\node_modules\q\q.js:556:49
at runSingle (C:\Roaming\npm\node_modules\protractor\node_modules\q\q.js:137:13)
[12:47:15] E/launcher - Process exited with error code 100
npm ERR! Test failed.  See above for more details.
Run Code Online (Sandbox Code Playgroud)

所有答案都说我应该在量角器文件中替换一行:var SpecReporter = require('jasmine-spec-reporter');,但我确实有它。这里还有什么问题?

Bas*_*dan 7

3.0.0 开始,jasmine-spec-reporter 模块导出 SpecReporter 和 DisplayProcessor。

根据文档,您需要像这样配置它:

const SpecReporter = require('jasmine-spec-reporter').SpecReporter;

jasmine.getEnv().addReporter(new SpecReporter());
Run Code Online (Sandbox Code Playgroud)