如何在 Jasmine 中将参数从规范传递给记者?

How to pass parameter from spec to reporter in Jasmine?

我正在写一个 jasmine 记者,我希望能够将参数从个别规范传递给记者。例如:

规格:

// I prefer this way
it("my spec 1", function() { ... }, { myParam: true });

// But this way would also be fine if it can work
it("my spec 2", function() {
    this.myParam = true;
    ...
});

记者:

this.specDone = function(specResult) {
   var myParam = // some way to access myParam
   ...
}

我没有找到任何类似这样的文件,也没有在其他记者那里找到类似的例子。

我还尝试调试 jasmine 的流程以查看将哪些对象传递给每个方法,但到目前为止我还没有找到一个简单的解决方案。

如何做到这一点?

我在 boot.js

中找到了一种可能的解决方案
var jasmineInterface = {
    it: function(desc, func, properties) {
      var spec = env.it(desc, func);
      spec.result.myParam = (properties || {}).myParam;
      return spec;
    },
...

然后在记者中:

this.specDone = function(specResult) {
   var myParam = specResult.myParam;
   ...
}

当然你可以(并且应该)使它更通用以适应其他情况。