Jasmine 'expect(...).withContext 不是函数'错误

Ser*_*kov 5 jasmine protractor

我正在寻找一种在 Jasmine 中使失败消息更具描述性的方法,并发现此功能https://jasmine.github.io/api/edge/matchers.html#withContext

所以我在我的量角器框架中尝试这样

expect(true).withContext("something else").toBe(false);

运行测试并得到错误 - Failed: expect(...).withContext is not a function

这个特性是从 Jasmine 3.3.0 开始实现的,所以我检查了我的 package.json 并看到了"jasmine": "^3.3.1",并且 package-lock.json 有

"jasmine-core": {
      "version": "3.3.0",
Run Code Online (Sandbox Code Playgroud)

任何想法有什么问题?

Ser*_*kov 6

刚刚从 GitHub 上的 Jasmine 团队得到了一个回答,说明

量角器使用使用 Jasmine 2.x 的 jasminewd 包装器。如果你想使用 Jasmine 3.x,你可以使用最近发布的 Protractor 6.0。在旧版本中,Jasmine 的最新特性,如 withContext 函数、异步钩子(例如 onSpecDone)不可用。

除了量角器版本的不同之外,我发现我的 grunt 任务运行器一直在使用 grunt-protractor-runner v5.0.0,它使用了量角器 5.4.2。所以我不得不直接用量角器打开 protractor.conf.js。