2017-11-18 6 views
2

integration testsの場合は
、もう1つの場合はunit testsの2つの異なるテスト環境を実行します。私はこれらの正規表現が出ているnestスクリプトのjest regex

__tests__/ut/p/a/t/h/file.test.ts 
__tests__/it/p/a/t/h/file.test.ts 


(__tests__/it/.*\.test)\.(tsx?|ts?)$

マイスクリプト

(__tests__/ut/.*\.test)\.(tsx?|ts?)$は次のようになります。

"test:ut": "jest \"(__tests__/ut/.*\\.test)\\.(tsx?|ts?)$\"", 
"test:it": "jest \"(__tests__/it/.*\\.test)\\.(tsx?|ts?)$\"", 

フォルダ構造は次のようなものです

しかし、私はyarn test:utを実行したときに私が手:

yarn run v1.3.2 
$ jest "(__tests__/ut/.*\.test)\.(tsx?|ts?)$" 
No tests found 
In /home/dev/sample 
    20 files checked. 
    testMatch: **/__tests__/**/*.js?(x),**/?(*.)(spec|test).js?(x) - 0 matches 
    testPathIgnorePatterns: /node_modules/ - 20 matches 
Pattern: (__tests__/ut/.*\.test)\.(tsx?|ts?)$ - 0 matches 
Done in 0.49s. 

もののを、私はそれが動作JSON構成ファイルで同じパターンを使用している場合。
私はjestを実行する方法で何かを推測します。
どうすれば修正できますか?これを実行

EDIT

no tests found

"test:ut": "jest -c jest.json \"(__tests__\\/ut\\/.*\\.test)\\.(tsx?|ts?)$\"",

結果。
しかし、私は、構成ファイル内の正規表現を置けば、それは作業を行います。

{ 
    "testRegex": "(__tests__\\/ut\\/.*\\.test)\\.(tsx?|ts?)$", 
    "transform": { 
    "^.+\\.tsx?$": "<rootDir>/node_modules/ts-jest/preprocessor.js" 
    }, 
    "moduleFileExtensions": [ 
    "ts", 
    "tsx", 
    "js", 
    "json", 
    "jsx" 
    ] 
} 

npm scriptとして私は、configファイルからtestRegexをコメントアウトし、それを実行します。

+0

「testMatch」が「.js」または「.jsx」ファイルにマッチするのはなぜですか?正規表現はTypeScriptと一致していますか?正規表現が最初のtestMatchが収集しているものと一致している場合は、コレクション内の一致するtsファイルはありません。ちょうど推測。 – rgthree

+0

"/ home/dev/sample/__ tests __/..."での2番目のコメントです。testPathIgnorePatternsの "20 files"と "20 matches"を出力すると、何か他のものが間違っている可能性があります(ただし、再度推測すると、無視される20のディレクトリの一致は、チェックされた20のファイルとは別です)。 – rgthree

+0

なぜ私は 'js'ファイルを探しているのか分かりません...私は質問に何かを加えました – itaied

答えて

0

私はここに同じような問題があり、最終的にはJest CLIオプション--testPathIgnorePatternsが働いています。だから、あなたは唯一の2つのテストの場所を持っているあなたの問題のために、私はitテストを行うとき/ut/フォルダを除外し、その逆になります。

"test:ut": "jest --testPathIgnorePatterns \"/(it)/\"", 
"test:it": "jest --testPathIgnorePatterns \"/(ut)/\"", 

それは場合に役立ちます。また、私は冗談でtestRegexを使用していませんでした