【问题标题】:Property does not exist on type 'JestMatchers '类型“JestMatchers”上不存在属性
【发布时间】:2023-03-09 14:32:01
【问题描述】:

我正在使用一个应用程序,我想在其中安装 jest 和 cypress 以进行测试。我的笑话测试运行正常,一切正常,然后我通过执行此命令安装了 cypress

 yarn add cypress @cypress/react @cypress/webpack-dev-server

而且我在 Cypress 中的测试运行正常,只要我尝试使用它们就可以运行

yarn cypress open-ct

但问题是,Chai 断言在测试中运行良好,但在我的 IDE 中显示错误

我的虚拟测试

it('Test test and onClick', () => {
  let clicked = false
  const onClick = () => (clicked = true)
  mount(<Button text="Random text" onClick={onClick} />)

  cy.get('button').should('have.text', 'Random text')
  cy.get('button')
    .click()
    .then(() => {
      expect(clicked).to.equal(clicked)
    })
})

以及显示的错误:

我尝试按照在 Internet 上看到的一些指南进行操作,但我遗漏了一些东西,因为我的 IDE(Webstorm 或 Visual Studio)只建议我使用 Jest 断言而不是 Chai 的断言,如果我使用 Jest 断言,我在运行时会出现此错误柏树

将测试断言改为:

expect(clicked).toEqual(clicked)

显示此错误:

我真的不在乎是否必须使用 Jest 或 Chai 断言,只要这可行。我的首选是 Chai,因为它们在 Cypress 中工作,但现在,我只希望它不会在我的 IDE 或 Cypress 中显示错误。

谢谢!

【问题讨论】:

  • 您需要使用 Chai 断言,因为 Cypress 测试不使用 Jest 运行。这也意味着您需要相应地配置 TypeScript,告诉它这些文件应该具有与其他测试相同的库类型。看看docs.cypress.io/guides/tooling/typescript-support
  • 感谢您的建议,我尝试按照docs.cypress.io/guides/tooling/… 的建议在我的 cypress 文件夹中创建一个 tsconfig.json,重新启动 TS 服务器、IDE 甚至我的计算机,但仍然无法正常工作
  • 没有minimal reproducible example 很难说你的配置有什么问题。在我整理的这个工具包中可以正常工作,例如:github.com/textbook/starter-kit-ts
  • 感谢@jonrsharpe 花时间在这个打字稿新手上 :) 我已经通过使用yarn add --dev chai mocha ts-node @types/chai @types/mocha 安装 chai 和 mocha 依赖项并将其添加到我的 cypress 测试文件`import {expect} from '柴'`

标签: javascript typescript jestjs cypress chai


【解决方案1】:

感谢@jonrsharpe 花费您的时间与这个打字稿新手 :)

我已通过使用 yarn add --dev chai mocha ts-node @types/chai @types/mocha 安装 chai 和 mocha 依赖项并将其添加到我的 cypress 测试文件 import { expect } from 'chai' 来修复它

【讨论】:

    猜你喜欢
    • 2022-12-17
    • 1970-01-01
    • 2021-09-14
    • 2021-01-09
    • 2021-07-10
    • 2017-07-22
    • 2023-03-26
    • 2023-04-02
    相关资源
    最近更新 更多