配置赛普拉斯,赛普拉斯反应单元测试和React

时间:2019-04-17 18:59:03

标签: reactjs webpack webpack-4 cypress

我想使用软件包cypress-react-unit-test独立测试我们的React组件。几天后,我无法使其与现有的React Webpack配置一起使用。 通过赛普拉斯的窗口打开文件时收到错误消息:TypeError: path argument is required to res.sendFile

我正在使用示例存储库中的文件进行测试: https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/unit-testing__react/greeting.jsx

我们确实使用TypeScript,但我想先让它开始工作。

我尝试覆盖path,因为它默认为undefined,但是我遇到了同样的错误。

{
  options: {
    path: "/my/home/dir/"
  }
}

在我的cypress/plugins/index.js文件中,我有:

const wp = require("@cypress/webpack-preprocessor");

const webpackConfig = require("../../node_modules/react-scripts/config/webpack.config")("development");

module.exports = on => {
  const options = {
    webpackOptions: webpackConfig
  };

  on("file:preprocessor", wp(options));
};

我显然缺少一些东西,但是我对Webpack的了解不够。如有任何建议,我将不胜感激!谢谢!

2 个答案:

答案 0 :(得分:0)

$menu["Accounts"]["Overview"]

答案 1 :(得分:0)

我也遇到了同样的问题,这就是我的问题得到解决的方式。

将以下代码粘贴到您的plugins/index.js文件中

module.exports = (on, config) => {
    config.env.webpackFilename = './cypress/webpack.config.js' // or path to your webpack.config.js
    require('cypress-react-unit-test/plugins/load-webpack')(on, config)
    return config
}

在您的cypress.json文件中添加以下内容

"componentFolder": "cypress/component"

将此导入内容添加到您的support/index.js文件中

import 'cypress-react-unit-test/support'

在Cypress文件夹下创建一个名为“ components”的文件夹,并将测试文件写入此处。 现在运行赛普拉斯。