2

我有一个使用react-css-modules 的组件,我使用mochats-node运行测试,这导致我的测试中断,因为它找不到模块foo.css。我怎么能做到这一点?

我为测试运行的具体命令是:./node_modules/.bin/mocha --compilers ts:ts-node/register,tsx:ts-node/register -r tsconfig-paths/register test/unit/**/*.test.*

我认为我理想的解决方案只是忽略.css导入并返回一个模拟对象,这样styleName我的组件中的道具将保持不变并且断言会很容易,但我愿意接受任何让我运行测试的解决方案。

4

2 回答 2

2

如果错误在 css 文件中显示“SyntaxError: Unexpected token”,那么您需要 require 或 import ignore-styles。就我而言,我得到了error TS2307: Cannot find module './style.css'.所以解决方案是定义TS_NODE_FILES=true,所以完整的命令是

TS_NODE_FILES=true TS_NODE_COMPILER_OPTIONS='{"module": "commonjs"}' mocha -r ts-node/register,test/setup.ts **/*.test.ts **/*.test.tsx
# I do `import 'ignore-styles'` in test/setup.ts

我不完全确定,但我认为这是由definitions.d.ts定义 css 文件的文件被忽略引起的。TS_NODE_FILES 确保正在读取所有定义。

于 2019-10-27T21:14:03.173 回答
0

您可以通过将忽略样式安装到您的开发依赖项来忽略样式表,然后添加

--require ignore-styles

到您mocha.opts或您的命令行参数。

于 2018-02-28T22:08:31.050 回答