Jestは、テストが__tests__フォルダーにあるか、blah.test.jsという名前であることを期待しています。どちらのパターンも好きではありません。テストファイルを/test
およびそれらに名前を付けるtest/index.ios.test.js
は冗長でばかげているようです。この最初のスタブは、package.jsonのjest設定を次のように変更することです。
"jest": {
"testPathDirs": ["test"],
"testRegex": "\\.(js|jsx)$",
"preset": "react-native"
}
テストは成功しますが、すべて失敗します。
Cannot find module 'setupDevtools' from 'setup.js'
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:151:17)
at Object.<anonymous> (node_modules/react-native/jest/setup.js:23:1)
その関数はnode_modules/react-native/Libraries/Core/Devtools/setupDevtools.js
。ジェストにどこにあるのか教えてください。
正規表現を設定してすべてを検出することで問題を解決しました.js
ファイルを./test
フォルダ:
"jest": {
"preset": "react-native",
"globals": {
"__DEV__": true
},
"testRegex": "./test/.*.js$",
"rootDir": "."
},
(jcollum here:わからない__DEV__
は実際にそこで実行していますが、そうでない場合はエラーがスローされます。 jest 17.0.3)
これを行う最善の方法は testMatch を設定することだと思います。デフォルトは次のとおりです。
[ "**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)" ]
したがって、__tests__
to tests
または両方をチェックする配列に新しいエントリを追加します。私はpackage.jsonで以下を使用します:
"jest": {
"testMatch": [ "**/tests/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)" ]
},