我知道这可能是之前发布的,但我真的很难理解为什么我的测试在我的React项目中不起作用。这是我的.babelrc
文件:
{
"presets": ["react", "es2015", "stage-0"],
"plugins": [
"transform-runtime",
"add-module-exports",
"transform-decorators-legacy"
],
"env": {
"development": {
"plugins": [
"typecheck",
["react-transform", {
"transforms": [{
"transform": "react-transform-catch-errors",
"imports": ["react", "redbox-react"]
}]
}]
]
},
"test": {
"presets": ["es2015", "react", "stage-0"],
"plugins": [
"transform-runtime",
"add-module-exports",
"transform-decorators-legacy"
]
}
}
}
这是我在package.json
"jest": {
"moduleFileExtensions": [
"js",
"jsx",
"json"
],
"moduleNameMapper": {
"ExampleTest": "<rootDir>/app/pages/ExampleTest.js"
},
"moduleDirectories": [
"app",
"node_modules"
]
},
我得到的错误是Test suite failed to run... SyntaxError: Unexpected token <
。
从我可以告诉我的错误,它试图运行的文件中包含JSX / ES6代码......并且它不知道如何转换它?这很奇怪,因为我告诉它在.babelrc
中做到这一点。我还为Jest提供了适当的moduleDirectories
。
非常感谢任何帮助。
答案 0 :(得分:1)
最后一个逗号,在你的JSON中是错误的。它应该看起来像:
#!/bin/bash
while getopts ":m:s:xh" opt; do
#codes
done
答案 1 :(得分:0)
确保在测试文件中导入React
。
答案 2 :(得分:0)
如果你的package.json文件只包含框中显示的内容,我认为问题是&#34;},&#34;当你包含一个昏迷时,它应该不在那里(如果package.json文件只包含框中显示的内容),因为它是最后一行代码,并且没有更多的JSON代码。希望它有用!
答案 3 :(得分:0)
如果有人好奇的话,答案是配置Jest以优雅地处理资产文件,例如样式表和图像。通常,这些文件在测试中不是特别有用,所以我们可以安全地模拟它们。要了解更多信息,请参阅Jest文档中的Using with Webpack。