如何在 Jasmine 中显示通过测试?

How to show passed test in Jasmine?

当 运行 jasmine 时,它只在测试成功时显示点 (.),在测试失败时才显示详细信息。

//test.spec.js
describe('jasmine', ()=>{
  it('should show this text', () =>{
  });
})

我的运行命令是:jasmine-node test.spec.js

结果:

.
Finished in 0.003 seconds
1 test, 1 assertion, 0 failures, 0 skipped

如何让jasminejasmine should show this text一样显示这个测试结果?

使用--verbose标志:

> jasmine-node test.spec.js --verbose

jasmine - 0 ms
    should show this test - 0 ms

Finished in 0.007 seconds
1 test, 1 assertion, 0 failures, 0 skipped

注意:jasmine-node 似乎没有得到积极维护。 jasmine CLI 支持从命令行测试 运行。

虽然 jasmine 没有详细标志,但您可以使用自定义终端报告程序(示例:jasmine-terminal-reporter)。从 jasmine's documentation,添加一个帮助程序文件以加载自定义报告程序并将该帮助程序包含在您的配置文件中。

helpers/terminal-reporter.js

var Reporter = require('jasmine-terminal-reporter');
var reporter = new Reporter(options);

jasmine.addReporter(reporter);

spec/support/jasmine.json

{
  "spec_dir": "spec",
  "spec_files": [
    "**/*[sS]pec.js",
  ],
  "helpers": [
    "helpers/**/*.js"
  ],
  stopSpecOnExpectationFailure: false,
  random: false
}

我知道这是一个相对较老的问题,但发现了一些对我有用的东西

describe('Desc1',() => {
   
    afterEach(() => {
      const myReporter = {
        specDone: (result) => {
          console.log('Spec FullName: ' + result.fullName);
          console.log('Spec Result: ' + result.status);
        }
      };
      jasmine.getEnv().addReporter(myReporter);
    });
})

解决方案的功劳:https://groups.google.com/g/jasmine-js/c/qqOk6Nh7m4c/m/Nyovy2EjAgAJ

您可以使用 jasmine-spec-reporter.

只需在测试文件的顶部添加:

import { SpecReporter } from 'jasmine-spec-reporter';
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: 'pretty' } }));