Karma茉莉花测试:在终端突出显示差异

23t*_*tux 8 javascript testing jasmine karma-runner

我正在使用Karma和Jasmine进行测试.在某些测试中,我有大量的测试依赖的对象.当我做的事情

expect(obj).toEqual(expectedObj);
Run Code Online (Sandbox Code Playgroud)

并且obj != expectedObj,我在终端中收到错误消息.但是这个错误确实很长,因为它包含了两个对象,并且很难看出这两个对象在哪些部分是不同的.

那么,终端是否有任何荧光笔,可以与业力一起使用?通过这种方式,可以更容易地弄清楚,出了什么问题.

Rui*_*ues 7

我有同样的问题,它对我来说是karma-jasmine-diff-reporter.

只需安装它:

npm install karma-jasmine-diff-reporter --save-dev
Run Code Online (Sandbox Code Playgroud)

并将其配置为记者,例如:

// karma.conf.js 
module.exports = function(config) {
  config.set({     

    reporters: ['jasmine-diff']     

  });
};
Run Code Online (Sandbox Code Playgroud)

您可以将其配置为漂亮的打印:

    // karma.conf.js 
    module.exports = function(config) {
      config.set({     

        reporters: ['jasmine-diff'],     

        jasmineDiffReporter: {
            pretty: true, // 2 spaces by default for one indent level
            matchers: {
                toEqual: {
                    pretty: false   // disable pretty print for toEqual
                }
            }
        }         
      });
    };
Run Code Online (Sandbox Code Playgroud)

输出将是这样的:

输出示例