node.js - SpecReporter 不是 jasmine 上的构造函数错误

标签 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());
    }
};

然后是测试文件:

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

当我运行 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.

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

最佳答案

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

根据documentation ,你需要这样配置:

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

jasmine.getEnv().addReporter(new SpecReporter());

关于node.js - SpecReporter 不是 jasmine 上的构造函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43276445/

相关文章:

javascript - 在使用配置文件而不是环境变量的 Node 应用程序中,应将 Azure 存储连接字符串放在何处?

node.js - 找不到模块(nodejs)

node.js - beforeAll 和 beforeEach 套件而不是规范

javascript - 在 Protractor 中从命令行传递基本 url

jasmine - Protractor 测试中的定制 Jasmine 记者

javascript - 从原始查询中解析模型和关联 hasMany

node.js - Swagger 特定路径的安全性

html - Angular 4 - 使用 Jasmine 进行单元测试 - 按钮单击代码显示错误

angularjs - 有没有人找到将列表编号添加到 Protractor Describe block 的方法?

javascript - 我可以将 jasmine-spec-reporter 的输出写入文件吗?