【问题标题】:How to work with Jasmine 3.3 or above in Protractor?如何在 Protractor 中使用 Jasmine 3.3 或更高版本?
【发布时间】:2021-12-12 20:03:04
【问题描述】:

它默认带有 Jasmine 2.8,我找不到任何方法来更改它。

在我的配置文件中,我可以设置框架(jasmine、mocha)但不能设置版本

我唯一能找到的是这个 github 问题,但找不到任何关于它回滚的原因以及现在如何使用 3.3 plus。

https://github.com/angular/protractor/pull/5102

【问题讨论】:

  • 哦,看!这是我的拉取请求。是的,整个版本都被 Angular 团队回滚了。我不知道我还能说些什么。对不起。

标签: jasmine protractor


【解决方案1】:

您可以尝试如下:

  1. 添加 Jasmine 3.3 作为依赖项。请确认npm install之后的Jamsine版本

  2. 在 conf.js 中自定义测试框架

exports.config = {
    ...
    framework: "custom",
    frameworkPath: require.resolve("jasmine"),
    ...
}

【讨论】:

    【解决方案2】:

    然后yong 的回答对我不起作用。原因是您需要为 jasmine 提供一个包装器,而不是 jasmine 本身。

    这就是 Protractor 7.0.0 和 jasmine 3.10.0 对我有用的方法。

    使用 Protractor 的 jasmine2 适配器工作。

    1. 指导量角器使用茉莉花3

    这很容易通过纱线分辨率完成,例如

    "resolutions": {
        ...
        "**/jasmine": "^3.10.0",
    },
    
    1. 创建一个 NOOP jasminewd2 文件
    exports.init = () => {
        console.log('Using mock-jasminewd2 to remove jasminewd2 from protractor');
    };
    

    并指示量角器使用它而不是 jasminewd2,再次使用 yarn 工作空间

    "resolutions": {
        ...
        "**/jasminewd2": "file:./packages/mock-jasminewd2"
    },
    

    当我们使用 jasmine3 的适当异步匹配器时,我们不需要 jasminewd2

    1. 将所有在“pass”中返回 promise 的自定义匹配器重写为正确的 jasmine 3 异步匹配器,例如 https://github.com/tepez/jasmine-protractor-matchers/commit/c6e2092d1f925a415b1192303b57da4a5790439a

    2. 使用 jasmine.addAsyncMatchers 而不是 jasmine.addMatchers 添加自定义匹配器

    3. 重写所有期望:

    await expect(...) => await expectAsync(...)

    1. 禁用 jasmine 的随机 onPrepare
    jasmine.getEnv().configure({
        random: false,
    });
    

    这不能通过在 jasmineNodeOpts 中传递随机来完成

    请注意,protractor 的 master 分支的版本 6 代码与版本 7 非常不同 这更像是 5。

    所以浏览它的代码https://github.com/angular/protractor/tree/7.0.0 而不是主分支https://github.com/angular/protractor

    这可能会令人困惑,因为版本 6 does disable 茉莉花的随机性

    【讨论】:

      猜你喜欢
      • 2015-04-04
      • 2014-01-10
      • 2016-03-26
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多