【发布时间】: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