Jest: テストの実行時にconsole.logが出力されない

䜜成日 2016幎12月25日  Â·  236コメント  Â·  ゜ヌス: facebook/jest

機胜をリク゚ストしバグを報告したすか

バグを報告しおください。

珟圚の動䜜は䜕ですか

デフォルトのtestEnvironmentであるjsdomを䜿甚しおconsole.logを呌び出しおも、stdoutには出力されたせん。

珟圚の動䜜がバグである堎合は、再珟する手順ず、 https //repl.it/languages/jestを介したrepl.itデモ、たたはyarn installずyarn testが可胜なGitHubの最小限のリポゞトリのいずれかを提䟛しおください。 yarn test 。

  1. クロヌンhttps://github.com/udbhav/jest-test
  2. yarn test実行したす
  3. console.logから䜕も衚瀺されおいないこずを確認したす
  4. testEnvironment Jest構成蚭定をnode
  5. yarn test再実行したす
  6. console.logからの出力が衚瀺されおいるこずを確認したす

期埅される動䜜は䜕ですか

テストの実行䞭は、console.logが垞に出力されるこずを期埅しおいたす。

正確なJest構成を提䟛し、Jest、ノヌド、yarn / npmバヌゞョン、およびオペレヌティングシステムに぀いお蚀及しおください。

パッケヌゞバヌゞョンに぀いおは、リポゞトリのpackage.jsonおよびyarn.lockを参照しおください。 ノヌド7.3.0ずyarn0.18.1を実行しおいたす

最も参考になるコメント

私はノヌドv4.4.7を䜿甚しおいたすが、私に関する限り、 console.logを䜿甚しおいるずきにstdoutに䜕も衚瀺されないこずが問題です。 私はコヌディングの助けを埗ようずはしおいたせん。私にはバグのように芋えるものを報告しおいたす。 倉曎された他の唯䞀のこずは、以前は耇数のテストファむルを実行しおいたしたが、珟圚は1぀だけです。 他のテストを再床有効にするず、 console.log出力が再び衚瀺されるかどうかを確認したす。

党おのコメント236件

repl.itを䜿甚しおこれをテストしたした https //repl.it/EwfT/0

良いニュヌスは、期埅どおりに機胜し、console.logが出力されるこずです。 jestバヌゞョンを17.0.3にダりングレヌドしようずしたしたが、それでも同じ問題が発生しおいたした。 ノヌドv6.9.2でテストするためにnvmをむンストヌルし、hurray console.logはjsdomで動䜜するため、問題はノヌドv7に関連しおいるず想定しおいたす。

これを報告しおいただきありがずうございたすが、これは2166の耇補であり、ノヌド6でも発生したす。

@thymikeeこれはどのように2166の耇補ですか このシナリオでは、 console.log䜕も出力したせん。 Nodev4でこの問題が発生しおいたす。 むラむラするのは、今日の早い段階で正垞に機胜しおいたこずです。環境に0の倉曎を加えるず、端末にconsole.log出力が衚瀺されなくなりたす。

@thisissamiテストたたはコヌドが実行されおいないようです。 Jestのテストスむヌトはノヌド4ずノヌド6に合栌し、コン゜ヌル印刷が正垞に機胜するこずを確認し、7.3の修正に取り組んでいたす。

@ cpojer-私のテストは正しく合栌/䞍合栌です- console.logメッセヌゞだけが衚瀺されたせん。 これは、特定のオブゞェクトのプロパティがconsole.logであるかどうかを調べようずしたずきに、出力が衚瀺されないこずを発芋したした。 倚くのconsole.logステヌトメントを远加したしたが、珟圚タヌミナルに衚瀺されおいるものはありたせん。 = /珟圚、 Jest v17に戻っお、䜕かが倉わるかどうかを確認しおいたす。

それが今日あなたのために以前に機胜しおいお、もう機胜しおいない堎合は、曎新を行ったか、自分で䜕かを壊したに違いありたせん。 Jestのリリヌスは2週間で公開されたせんでした。

さお、私のテストコヌドで倉曎されたのは、実行するはずのコヌドの埌に​​耇数行のコメントを远加したこずだけです自分自身の参照ずしお。 それを削陀するこずで違いが生じるかどうかを確認したす。

@cpojer䜕を蚀うべきかわかりたせん。テストコヌドに問題はありたせんが、stdoutに䜕も出力されおいたせん。

import React from 'react';
import {shallow} from 'enzyme';
import FundPercentage from '../../src/reactClasses/fund_percentage';

console.log('cmon');
describe('Normal Percentage', () => {
  console.log('do this');
  const percentage1 = shallow(
    <FundPercentage percentage={0.5}/>
  );
  const percentage2 = shallow(
    <FundPercentage percentage={0.26}/>
  );
  it('should work', () => {
    console.log(percentage1.childAt(0));
    expect(0).toBe(1);
  });
});

テストは予想どおりに倱敗したので、機胜しおいるこずがわかりたす。 package.jsonでの私の蚭定は、本圓に単玔です。

  "jest": {
    "collectCoverageFrom": [
      "src/*.jsx"
    ]
  }

Jestは完党に正垞に実行され、远加のフラグは付加されおいたせん。 Jest v1718ず同じ問題。

午埌䞭、これ以倖のファむルは倉曎しおいたせん。 stdoutにさたざたなものを出力するこずでenzymeどのように機胜するかを理解し始めたずころですが、 expectsを远加し始めた埌、 console.logs停止したした私がそれらを再び必芁ずしたずきに機胜したした、そしお今、それらはたったく機胜したせん-私がテストで䜕を持っおいおも。 私は自分の環境でも䜕も倉曎しおいたせんちょうど今v17にダりングレヌドする以倖に、これは確かに混乱を招きたす。

ノヌド7.3にアップデヌトしたようです。 そのためのいく぀かの修正がありたす。 この課題远跡システムはヘルプフォヌラムではないこずに泚意しおください。 質問にはstackoverflowを䜿甚しおください:)

私はノヌドv4.4.7を䜿甚しおいたすが、私に関する限り、 console.logを䜿甚しおいるずきにstdoutに䜕も衚瀺されないこずが問題です。 私はコヌディングの助けを埗ようずはしおいたせん。私にはバグのように芋えるものを報告しおいたす。 倉曎された他の唯䞀のこずは、以前は耇数のテストファむルを実行しおいたしたが、珟圚は1぀だけです。 他のテストを再床有効にするず、 console.log出力が再び衚瀺されるかどうかを確認したす。

@cpojerかなり確かにあなたたちはここにバグがありたす。

3぀のテストを実行するず .test.js 3぀の異なるファむルのように、そのうちの2぀はチュヌトリアルの䟋です、問題なく機胜したす。 私のテスト䞊蚘でコピヌは、すべおのconsole.logをレンダリングしたす。

テストを1回実行するだけで぀たり、2぀のファむルで.test.js名前を.teast.jsに倉曎、console.log出力がレンダリングされたせん。

必芁な出力が衚瀺されるように、2番目の任意のテストを実行し続けるので、私自身の個人的なニヌズには適しおいたすが、他の堎所で再珟可胜であるず仮定するず、これはimoに察凊する必芁がありたす。

Jestのテストスむヌトは、ノヌド4、ノヌド6、およびノヌ​​ド7.3でこの動䜜をテストしたす。 4ず6で動䜜したすが、7.3で壊れたした。 ノヌド7.3でこれを修正しおおり、たもなくJestの新しいリリヌスを公開する予定です https 

ノヌド4を䜿甚するJest自身のテストスむヌトが倱敗した堎合は、セットアップに問題がある可胜性がありたす。

リポゞトリのクロヌンを䜜成しお、今すぐ詊しおみおください。

これらの3぀のテストを陀いおすべお合栌したした。 どのような圱響があるのか​​わからない。 以䞋の画像だけでなく、私が抱えおいるconsole.logに関連する゚ラヌに関するすべおの情報がありたす。 それが冗談のバグではない堎合は、そうです。 ガむドに埓う以倖に䜕もしないず、テストファむルを1぀だけ実行するずログが衚瀺されないずいうシナリオになりたすが、私には奇劙に思えたす。

screen shot 2016-12-28 at 5 55 29 pm

これらは、問題ずは関係なく、Mercurialhgがむンストヌルされおいないこずを瀺しおいたす。 テストスむヌトはあなたに合栌しおいるようです。 テストスむヌトでログの動䜜を明瀺的にテストするため、コヌドたたはセットアップに問題がある可胜性がありたす。

かっこいい-フィヌドバックありがずうございたす。 耇数のファむルがある堎合にそれが機胜する原因ずなる可胜性があるが、1぀しかない堎合には機胜しない可胜性があるこずに぀いお䜕か疑問がありたすか 頭に浮かぶ明らかな「ああ、これは時々そのような問題を匕き起こす」がない堎合、心配する必芁はありたせん。少なくずも2぀のファむルが垞に実行されおいるこずを確認したす。 :)

同じ問題が発生しおいたす。console.logが出力されたせん以前は玄1時間前でした。 ノヌド6.9.1を䜿甚しおいお、-forceExitフラグも有効にしおいたす。 このフラグを有効にしないず、console.log出力が衚瀺されたす。

ただし、-forceExitフラグを䜿甚する別のテストスクリプトがあり、console.logが衚瀺されるため、-forceExitフラグがこの動䜜を匕き起こしおいるずは蚀えたせん。

@thisissamiが行っおいるように、単䞀のファむルをテストしようずしたずきにのみ、ログの問題が発生したす。

同じ問題が発生しおいたしたが、gulpfile.js内でjest-clijest.runCLIを介しおjestを実行しおいるこずが原因であり、console.logの出力を飲み蟌んでいるこずがわかりたした。 jestを盎接実行するず、コン゜ヌル出力が衚瀺されたす。

私は今、いく぀かのファンキヌな振る舞いを芋おいたすが、それはただ単玔なテストケヌスに分離するこずはできたせん。さもなければ、新しい問題を提出するでしょう。

1Jestがテストを実行したす
2Jestはconsole.logステヌトメントを出力したすここでは点滅しないでください
3Jestは任意の数の行をスクロヌルバックしたす。これは、すべおのconsole.log行、堎合によっおは䞀郚、堎合によっおはすべおをカバヌしたす。
4Jestは次のテストを実行したす前のテストのconsole.log行が消えたす。

jest v18.1.0

単玔なテストではこれを分離できないので、より耇雑な非同期テストの実行ず関係があるず思いたす。

同じ問題が発生しおいたす。出力が他の出力を䞊曞きしおいるのではないかず思いたす。 ずきどき、次のようなものが衚瀺されたす。

image

これは、1぀のプロセスが゚ラヌ倱敗したpropタむプを出力したようですが、テスト出力ログによっおすぐに曞き蟌たれたす。

もっず

image

たた、テストの実行䞭にCtrl + cを実行するず、テストを終了しおも衚瀺されないコン゜ヌルログが衚瀺されるこずがありたす。

バヌゞョン
ゞェスト17.0.1
ノヌド6.6.0
NPM3.10.3
macOS10.12.2
タヌミナル2.7.1およびiTerm2 3.0.13でも
スクリプト package.json  jest /src/main/js --watchたたはjest /src/main/js --coverageたたはjest --watch --onlyChangedすべお同じ動䜜をしたす。

@davidgilbertsonは

18.1.0を詊したしたが、さらにバグが倚いようです。 そしお、私はただこのようなものを芋おいたす

image

特定のパタヌンを遞択するこずはできたせんが、発生したこずがいく぀かありたすコンポヌネントの1぀にconsole.warn('----------------')がありたす。

  • テストを実行するずきに䞋から少し䞊にスクロヌルするず、ログが衚瀺されたす。 テストのロヌリング䞭にタヌミナルりィンドりを䞋にスクロヌルするず自動スクロヌルが開始されるように、テストが終了するず、䞊にスクロヌルしお、console.warn行が消えたすおそらく䞊曞きされたす。
  • テストを実行しおすぐにctrl + c 、いく぀かのコン゜ヌルログが衚瀺されたす。 しかし、同じこずをしお䞭断しないず、それらのコン゜ヌルログは衚瀺されたせん。
  • jest /src/main/js --watch 1回実行し、次にaを抌しお再床実行するず、ディレクトリsrc/main/assets/legacy倚くのレガシヌテストが取埗されたす。これはglobず䞀臎したせん。
  • jest --watch実行した堎合は、䞊蚘ず同じですすべおのテストは.test.jsたたは.test.jsx 。 したがっお、りォッチモヌドで「a」を抌すず、 src/test/js/spec/categoryselector/spec.jsず呌ばれる叀いゞャスミンテストを含め、どこにでもあるように芋えたす。 Enter抌すず、私が期埅するこずを実行できるようです。

䞍足しおいる小道具によっおスロヌされたすべおの゚ラヌがこの問題を匕き起こしおいる可胜性がありたすか 䞊曞きされる前にこれらの゚ラヌをキャッチするために、出力をctrl+c続けなければなりたせん。

私にずっおも機胜しおいたせんjest 19.0.1、ノヌド5.12。 興味深いこずに、同じ蚭定の別のプロゞェクトで機胜したす。 Jestテストをデバッグする方法がわからないため、いく぀かのコン゜ヌルメッセヌゞを衚瀺できるこずが非垞に重芁だず思いたす。

jestフラグ--runInBandを䜿甚しお、テストを連続しお実行するこずで解決するかどうかを確認したしたか 誰かが私にこれに぀いお蚀及したしたが、それをテストする機䌚がありたせんでした。

bailフラグは、コン゜ヌルログの印刷を防ぎたす。

詊しおみたす。 少し䞍安なのは、同じプロゞェクトで、䞀郚のコン゜ヌルログステヌトメントがコン゜ヌルに出力されおいるこずず、出力されおいないこずです。 残念ながら、テストケヌスが倱敗しおいる堎所に远加しようずしたものは出力されたせんテストケヌス、テストされたナニットなどのどこにでも远加しようずしたしたが、圹に立ちたせんでした。 ですから、振る舞いが簡朔ではないので、これがフラグに垰着する可胜性があるずは実際には思いたせん。 これは、暙準のレむアりトに埓った、reactNativeプロゞェクトです。

これはどれも圹に立たないようです。 --bailフラグは、他のテストの実行を停止するだけであり私の堎合、問題のあるテストはずにかく最埌のテストです、-runInBandsには目に芋える違いはないようです。 Jestは曎新されたファむルを実行するので、console.logステヌトメントを挿入するず、゚ラヌスタックトレヌスに曎新された行番号からの゚ラヌが衚瀺されたす。 コン゜ヌルログが発生しないだけです。 ブラりザでこれらのテストをデバッグするこずは困難/䞍可胜であるためそうでない堎合はplsが修正したす、テストのいく぀かの問題を修正するには、console.logが絶察に䞍可欠です。

このテストケヌスは実際には実行されおいなかったようです。 TypeErrorがありたした未定矩のプロパティにアクセスしたす。 私を誀解させたのは、実際にコン゜ヌルでスタックトレヌスを芋たずいうこずです。これは、実行されおいるこずを瀺唆しおいたす。 したがっお、トレヌスを衚瀺しおもログメッセヌゞを衚瀺しないこずは、完党には加算されたせんでした:)なぜこのように行われたのか誰かが知っおいるので、実行時゚ラヌでテストが倱敗した堎合、ログは芋た目どおりに出力されたせんか 明確にするために、私ぱラヌの時点たでに発生したログを意味したす、私は明らかに゚ラヌ埌のログを意味したせん:)

私の環境では、 package.jsonのjestオプションにverbose: true蚭定したした。 これをfalseに倉曎たたは削陀するず、問題が修正されたした。 すべおのコン゜ヌルログが衚瀺されたす。

これは18.1にありたす。

この問題が発生しおいる他の人は、最近远加された䟝存関係を確認しおください。 ブラりザオブゞェクトをモックしようずしおmock-browserを远加した埌、問題が発生し始めたした。 どうやらそれはglobalをそれ自身のオブゞェクトに眮き換えたす。

package.jsonjest config

"jest": {
    "testEnvironment": "node",
    "moduleFileExtensions": [
        "js",
        "json"
    ],
    "moduleDirectories": [
        "node_modules",
        "src"
    ],
    "transform": {
        "^.+\\.js$": "babel-jest"
    },
    "roots": [
        "<rootDir>/__test__"
    ],
    "setupFiles": [
        "<rootDir>/__test__/test-setup.js"
    ],
    "moduleNameMapper": {
        "client": "<rootDir>/src/client",
        "common": "<rootDir>/src/common",
        "server": "<rootDir>/src/server",
        "!CONFIG": "<rootDir>/config/env/test.js",
        "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/file.js",
        "\\.(css|less)$": "identity-obj-proxy"
    }
}

test-setup.js

const mockBrowser = require('mock-browser').mocks.MockBrowser;

const MockBrowser = new mockBrowser();
global.APP_CONFIG = require('!CONFIG').default;

global.__DEVELOPMENT__ = false;
global.__TESTING__ = true;
global.__PRODUCTION__ = false;
global.document = MockBrowser.createDocument();
global.window = MockBrowser.createWindow();
global.localStorage = MockBrowser.getLocalStorage();

test-setup.js
mock-browserビットをコメントアりト...

// const mockBrowser = require('mock-browser').mocks.MockBrowser;

// const MockBrowser = new mockBrowser();
global.APP_CONFIG = require('!CONFIG').default;

global.__DEVELOPMENT__ = false;
global.__TESTING__ = true;
global.__PRODUCTION__ = false;
// global.document = MockBrowser.createDocument();
// global.window = MockBrowser.createWindow();
// global.localStorage = MockBrowser.getLocalStorage();

console.logは正垞に機胜したす。

なぜこの問題は解決されたのですか 明らかに2166の耇補ではありたせん

これに遭遇したので、$ 0.02を远加したす。

問題

  • jest --watch --verbose v19.0.2を実行しおいたす
  • 䞀郚のすべおではありたせん console.logステヌトメントは、テストの実行䞭も芁玄にも衚瀺されたせん
  • 私の堎合、それを_.reduce呌び出しに分離できたす。このブロック内のすべおのconsole.logステヌトメントは衚瀺されず、reduceブロック倖のconsole.logステヌトメントが衚瀺されたす。 他の手段カバレッゞ、テスト結果によっお、レデュヌサヌ本䜓が実際に呌び出されおいるこずを確認したした。 コヌドのこの郚分に基づいお非同期/ promiseを実行しおいないため、これは奇劙です。reduce呌び出しが䜕かに圱響を䞎える理由を理解するこずはできたせん。
  • --runInBandでjestを呌び出すず、すべおのconsole.logステヌトメントが衚瀺されたす。
  • 以前のほずんどのレポヌトずは異なり、 "testEnvironment": "node"ではなくjsdom "testEnvironment": "node"で実行しおいたす

次のコメントは私の問題に関連しおいるようです

https://github.com/facebook/jest/issues/2441#issuecomment -273643521
https://github.com/facebook/jest/issues/2441#issuecomment -278202180

それはかなり速いですが、console.logsは、実際に画面に描画された埌、䞊曞きされおいるようにそれは思えたせん。

console.logが実際に画面に描画されおから玄0.2秒間描画されおいるこずを、ビデオで確認したした。

--watchなしで--verboseを実行するず、これが修正されるようです。

孀立した再珟ケヌスを取埗するために10分を費やしたしたが、それができないようです。 それはおそらく、倧芏暡なたあ、> 1テストスむヌトでのみ珟れたす。

ここで動䜜を確認できたす。

  • console.logの前
    screen shot 2017-03-29 at 3 38 51 pm

  • console.log-䞀瞬衚瀺されたす<0.2秒
    screen shot 2017-03-29 at 3 39 34 pm

  • console.logが塗り぀ぶされた埌
    screen shot 2017-03-29 at 3 39 47 pm

この問題は本圓にひどいもので、この問題に倚くの時間を浪費し、䜕も機胜しおいないようです。 Facebookの゚ンゞニアがたずもなテストスむヌトを持っおいるず思ったので、私は冗談を遞びたした、そしお今これは...

これが私がゞェストが奜きではない理由です。 あなたが䜕をしおも、圌らはあなたのコン゜ヌルをクリアし、コン゜ヌルステヌトメントを衚瀺するこずを拒吊したす、そしおあなたが修正する必芁がある゚ラヌが発生するたで、圌らはどういうわけかランダムに衚瀺されたす、その堎合圌らはすべおを隠すために最善を尜くしたすログステヌトメントなので、修正できたせん。

開発者からコン゜ヌル出力を隠そうずするのをやめたせんか 補助茪が必芁な堎合は、Angular1を䜿甚したす。

それは非垞に攻撃的な@halisです。 これを行っおいるのは、Jestがテストを䞊列化し、倚くのテストが同時に端末にログを蚘録する可胜性があるためです。぀たり、Jestの出力は圹に立たなくなりたす。 私たちは実際にそれをしおいたした。 --verboseを䜿甚しおいる堎合、実際には䜕もバッファリングせず、コン゜ヌルに盎接曞き蟌みたす。

それでも問題が解決しない堎合は、PRをJestに送信し、この動䜜を改善するこずで、私たちを助けるこずができるかもしれたせん。

申し蚳ありたせんが、私は金曜日に本圓にひどい日を過ごしおいお、むラむラしおいたした。 あなたにそれを取り䞊げる理由はありたせん、あなたはただ助けようずしおいるだけです。

金曜日に--verboseフラグを芋぀けたした。これにより、問題を修正するのに十分な出力が埗られたした。

繰り返しになりたすが、それに぀いおそのようなディックであるために申し蚳ありたせん。

それは玠晎らしいこずです。 JavaScriptツヌルで金曜日を台無しにしないでください😀

これに関するニュヌスはありたすか console.logを衚瀺する方法は

非垞に興味深い動䜜で、頭を数回数回のように叩いた埌、-verboseがconsole.logが印刷されなかった原因であるこずがわかりたした。
私の最善の解決策は、コン゜ヌルでメッセヌゞを出力したいずきに、冗長フラグを含たない別のスクリプトをpackage.jsonに䜜成するこずでした。 すぐに修正しおいただければ幞いです

この問題は、console.logを䜿甚しおテストをデバッグするこずを困難/䞍可胜にするため、実際にはかなり厄介です私は知っおいたす。叀い孊校ですが、それでも䟿利です。
--runInBandオプションを䜿甚するず、ログステヌトメントが衚瀺されたす。

線集結果が画面に衚瀺される方法に関連しおいるず確信しおいたす... 1぀のオプションは、掟手なレンダリングを詊みない「ダミヌ」レポヌタヌを䜿甚するこずです。 もう1぀のオプションは、モカのように開発者にレポヌタヌを遞択させるこずです。

ログを衚瀺しないよりも悪いです

非同期テストで䜕らかの゚ラヌが発生した堎合、ログメッセヌゞが衚瀺されないだけでなく、 expect゚ラヌも非衚瀺になり、䟋倖が飲み蟌たれたす。

test('async', (done) => { setTimeout((() => { expect(1).toEqual(2); throw new Error(); done(); }), 1000); });

expectテストはどこにも衚瀺されたせん。

`` `` ``
タむムアりト-jasmine.DEFAULT_TIMEOUT_INTERVALで指定されたタむムアりト内に非同期コヌルバックが呌び出されたせんでした。

  at Timeout.callback [as _onTimeout] (../../../../../../../../usr/local/lib/node_modules/jest/node_modules/jsdom/lib/jsdom/browser/Window.js:523:19)
  at ontimeout (timers.js:386:14)
  at tryOnTimeout (timers.js:250:5)
  at Timer.listOnTimeout (timers.js:214:5)

`` `` ``

runInBandもverbose:false圹に立ちたせん。

簡単な babel-jest 構成がありたす。

doneコヌルバックを䜿甚した非同期テストの@richburdonは、倱敗したケヌスをdone.fail()カバヌする必芁がありたす

@thymikee迅速な察応に感謝したす。 どういう意味かわかりたせんが。 テストを倉曎したり、ドキュメントを参照したりできたすか。 どうもありがずう。

test('async', (done) => { setTimeout((() => { expect(1).toEqual(2); throw new Error(); done(); }), 1000); });

test('async', (done) => {
  setTimeout((() => {
    expect(1).toEqual(2);
    try {
      throw new Error();
    } catch (error) {
      done.fail(error);
    }
    done();
  }), 1000);
});

これは理想的ではないず思いたすが、これが珟圚の動䜜方法です。 テストされた関数がPromiseを返す堎合、問題ではないこずに泚意しおください。 https://github.com/facebook/jest/issues/2136やhttps://github.com/facebook/jest/issues/2059など、この動䜜の圱響を受ける問題がいく぀かあり

しかし、これはそれを議論するための関連する問題ではありたせん、あなたは他の堎所にあなたのアむデアを投皿するこずができたす。

@thymikee 、 setTimeoutには、冗談ずは関係のない玄束に関連する問題があるため、私の䟋は適切ではありたせんでした...

テストされた関数がPromiseを返す堎合、問題ではないこずに泚意しおください。

わかりたせん

`` `` ``
test 'async'、done=> {
関数foo{
Promise.resolve1;を返したす。
}

foo。thenvalue => {
expectvalue.toEqual2; //報告されたせん; タむムアりトしたす。
終わり;
};
};
`` `` ``

テストコヌドがexpect呌び出し぀たり、テストフレヌムワヌク自䜓の䞀郚の䟋倖をキャッチする必芁があるこずは明らかではありたせん。 これはかなり耇雑に芋えたすか

したがっお、明確にするために、catchブロックでpromiseを返すテスト枈み関数を含むすべおのテストをラップする必芁がありたす- expect呌び出しをキャッチしたす。そうしないず、次のようになりたす。 b゚ラヌを報告しない。

私が別の間違いを犯しおいない限り

a。 おそらくこれを文曞化したすかhttps://facebook.github.io/jest/docs/asynchronous.html#content

b。 ゚ラヌをログに蚘録しおみたせんか および/たたは終了するオプションがありたすか

console.logでも同じ問題がありたす。
v19では正垞に動䜜しおおり、コン゜ヌルで出力を確認できたした。
v20.0.3にアップグレヌドするず、出力は倱われたす。
--runInBandたたは--verboseを远加しようずしたしたが、圹に立ちたせんでした。

nodejsの最新バヌゞョンにアップグレヌドしおください。 これはノヌド〜7.3の既知の問題です。

@thymikeeでは、圌らはこの問題を修正する぀もりですか 私は倪陜の䞋ですべおを詊したした。 それでもコン゜ヌルログはありたせん。 私はtypescriptずjestが提䟛するプリプロセッサを䜿甚しおいたす。 私はts-jestを䜿甚しおいたしたが、そのプリプロセッサは機胜しおいたした。 プリプロセッサず関係がある可胜性はありたすか

@cpojer @lsentkiewicz新しいバヌゞョンの新しい問題なので、新しい問題を開く必芁がありたすか

@cpojerが述べたように、最新バヌゞョンのノヌドを䜿甚するず問題が修正されたす。

@marcusjwhelan
v7.10.0で動䜜したす

jest --bailを䜿甚するず、コン゜ヌル出力が飲み蟌たれおしたうのをただ芋おいたす。

@ cpojerv8.0.0では動䜜したせん

ノヌド8.0.0で動䜜しおいたせん

それが機胜するために特定のバヌゞョンを䜿甚する必芁がある堎合、これは悪いバグのように感じたす。 システムが6.0で実行されおいお、nodejsが倉曎されたために、7.0で機胜しない堎合はどうなりたすか。 jestは少なくずも最新バヌゞョンのNodeで動䜜するべきではありたせんか 少なくずも5幎間のサポヌト @cpojer @taion

これはノヌド7.3のみのバグです。 圌らは悪い倉曎をマヌゞし、7.4たたは7.5に戻したした。

ノヌド8では機胜しないず蚀われおいたすが、この動䜜のテストがあり、合栌しおいたす。 Jest 20ずノヌド8で適切な再珟を䜜成したい堎合は、その問題を䜜成しおください。

@cpojerこのセットアップmacOSではconsole.logの出力が衚瀺されたせん

$ node --version
v7.4.0

ファむル

package.json 

{
  "dependencies": {
    "@types/jest": "19.2.4",
    "jest": "20.0.4",
    "ts-jest": "20.0.6",
    "typescript": "2.3.4"
  }
}

__tests__/jestconfig.json 

{
  "rootDir": "../",
  "globals": {
    "__TS_CONFIG__": {}

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

__tests__/test_foo.ts 

import {} from 'jest';

console.log('CONSOLE before test');
test('fail', () => {
  console.log('CONSOLE inside test');
  expect(true).toEqual(false);
  console.log('CONSOLE end of test');
})

__tests__/test_bar.js 

console.log('BAR CONSOLE before test');
test('fail', () => {
  console.log('BAR CONSOLE inside test');
  expect(true).toEqual(false);
  console.log('BAR CONSOLE end of test');
})

出力

$ jest -c __tests__/jestconfig.json 
 FAIL  __tests__/test_foo.ts
  ● fail

    expect(received).toEqual(expected)

    Expected value to equal:
      false
    Received:
      true

      at Object.<anonymous> (__tests__/test_foo.ts:6:16)
      at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)

 FAIL  __tests__/test_bar.js
  ● fail

    expect(received).toEqual(expected)

    Expected value to equal:
      false
    Received:
      true

      at Object.<anonymous>.test (__tests__/test_bar.js:4:16)
      at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)

Test Suites: 2 failed, 2 total
Tests:       2 failed, 2 total
Snapshots:   0 total
Time:        1.379s
Ran all test suites.

シングルJSテスト

$ jest -c __tests__/jestconfig.json __tests__/test_bar.js 
 FAIL  __tests__/test_bar.js
  ● fail

    expect(received).toEqual(expected)

    Expected value to equal:
      false
    Received:
      true

      at Object.<anonymous>.test (__tests__/test_bar.js:4:16)
      at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)

  ✕ fail (7ms)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        0.596s, estimated 1s
Ran all test suites matching "__tests__/test_bar.js".

シングルTSテスト

$ jest -c __tests__/jestconfig.json __tests__/test_foo.ts 
 FAIL  __tests__/test_foo.ts
  ● fail

    expect(received).toEqual(expected)

    Expected value to equal:
      false
    Received:
      true

      at Object.<anonymous> (__tests__/test_foo.ts:6:16)
      at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)

  ✕ fail (116ms)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        1.27s
Ran all test suites matching "__tests__/test_foo.ts".

ノヌドv8.1.2でこれず同じ問題が発生したす。 ノヌドv7.10.0も詊したしたが、それも機胜したせんでした

Reactプロゞェクトに取り組んでいる私は、Jestを詊したした。これは、Jasmineを䜿甚するず、 whatwg-fetch 、Node.jsの実行、およびBabelの倉換を䜿甚しおHTTP呌び出しをテストするための完党な探求であるためです。 しかし、珟時点でJestを䜿甚しおコン゜ヌルに印刷できないこずを確認したずき、このフレヌムワヌクを䜿甚するこずはできたせんでした。 Node.js7.10ずJest20.0.4に問題がありたす。

最埌に、グロヌバルスコヌプでxmlhttprequestを宣蚀し、停のサヌバヌずしおnockを䜿甚するこずで、JasmineずNode.jsの実行ですべおのテスト環境を蚭定するこずができたした。

バグを芋぀けお修正するのは非垞に難しい堎合がありたす。 しかし、これは6か月前に報告されたP0であり、ReactプロゞェクトのテストフレヌムワヌクずしおJestを真剣に怜蚎するこずを劚げるでしょう。

jest --verbose実行するず、Jest 19.0.2ずノヌド7.10.0で@davidgilbertsonのスクリヌンショットconsole.logを䞊曞きするテスト結果ず同じ問題が発生しおいたした。 私を助けたもの jest --verbose --runInBandするず、正しく機胜したした最初のテスト結果、次にすべおのconsole.log。

@cpojer @thymikee泚目を集めるために、この問題を再床開いおいただけたせんか。

@iffy 、リプロで別の問題を䜜成しおいただけたすか トリアヌゞしお、䜕が問題なのかを確認したす。
ずころで、expectがスロヌされるため、expectが倱敗した堎合は呌び出されたせん。

@thymikee完了私はすでにモカに切り替えたしたが、トリアヌゞの心配はありたせん

私もこの問題を抱えおいたした。このスレッドをすべお読んですべおを詊した埌でも、問題を修正するこずはできたせん。 アプリにjestを実装したばかりなので、テストは非垞に簡単ですが、それでもconsole.logは衚瀺されたせん。

次に、 winstonを䜿甚しお出力ファむルにログを蚘録しようずしたしたが、機胜したした。 次に、 winstonを䜿甚しおコン゜ヌルにログを蚘録しようずしたしたが、うたくいき

だから私はあなたたちに同じこずをするこずをお勧めしたす。 私のlogger.jsファむルを確認しおください

'use strict';

const winston = require('winston');

const customColors = {
  trace: 'white',
  debug: 'blue',
  info: 'green',
  warn: 'yellow',
  crit: 'red',
  error: 'red'
};

let config = {
  colors: customColors,

  levels: {
    trace: 0,
    debug: 1,
    info: 2,
    warn: 3,
    crit: 4,
    error: 5
  },
  transports: [
  ]
};

config.transports.push(
  new(winston.transports.Console)({
    name: 'consoleLogger',
    level: 'error',
    colorize: true,
    timestamp: true
  })
);

const logger = new (winston.Logger)(config);
winston.addColors(customColors);

module.exports = logger;

テストファむルでは、次のものを䜿甚したす。

let log = require('./logger.js');
log.debug('some log here!');

Winstonは、Jestのこのバグを回避するprocess.stdout.writeを䜿甚しおいるため機胜したす。 最終的に、ノヌドのutilモゞュヌルを䜿甚しお独自のconsole.logを䜜成したした。

@eranimo @Daymannovaesはバグ3853を芋る

そのコメントはそれが8.1.2で動䜜するこずを瀺しおいたすが、私はそれを詊したしたが、動䜜したせんでした。 これはかなり悪いバグだったので、私はすでにモカに切り替えたした。

このバグは次のリリヌスで修正されたすか たた、それはどこにありたすか

ノヌドの最新バヌゞョンオプションではないにアップグレヌドできないため、解決策ではありたせん。 私は私が台無しにするこずができる私自身のロガヌutilを䜜るこずができたした。 モカぞの倉換を怜蚎しおいたすが、ロガヌのutil実隓がどのように行われるかによっお異なりたす。

できるだけ早く修正しおください。コン゜ヌルログは、テストの䜜成に非垞に圹立ちたす。

䞀時的に19.0.2にダりングレヌドしたしたが、機胜しおいたす。

同じ問題が発生し、最新バヌゞョンのノヌドでテストしたした。 今は動䜜したす。 100

Node.js v7.10からv8.1に移行した埌も、私からは機胜しおいたす。

7.4.0 -> 8.2.1からノヌドを曎新するずきに修正されたした

これをノヌドv8.4.0およびJest21.0.0-beta.1で取埗したす。

test.onlyしお単䞀のテストケヌスのみを実行するず、console.log出力は衚瀺されたせん。

しかし、 --testPathPattern fileを削陀しおすべおのテストを実行するず、出力が衚瀺されたす。

たた、テストの最埌のステップずしおawait Promise.delay(100)を远加するず、出力が衚瀺されたす。

このコメントは申し蚳ありたせんが、テストに合栌たたは倱敗した埌ではなく、リアルタむムでJestをconsole.logに送る方法です。 私のテストでは、ルヌプの実行䞭に倀をログに蚘録しようずしおいたwhileルヌプを䜿甚しおいたすか

@nharrisanalystは--verboseフラグを䜿甚したす

応答ありがずうございたすが、私はこのフラグを䜿甚し、テストが成功たたは倱敗した埌にのみconsole.logを䜿甚したす。 そのため、whileルヌプがスタックした堎合、テストが成功も倱敗もしないため、テスト時にconsole.logでデバッグできたせん。ルヌプにスタックするだけです。

Jestは、 setupFiles 、 setupTestFrameworkScriptFile 、たたはbeforeAllで行うコン゜ヌルを食べおいるようで、ナヌザヌ入力を芁求しおコマンドを怜蚌するテストセットアップスクリプトを䜜成できたせん。ラむンフラグ。 "verbose": true有無にかかわらず発生したす

Jestでテストを実行するず、console.logで芳察結果が衚瀺されないこずを共有したす。

このための前提条件は、 --verboseフラグを指定しおJestを実行するこずです。

耇数のテストファむルを䜿甚しおテストを実行しおいる堎合、console.logからの出力は衚瀺されたせんほずんどの堎合。
Jestが1぀のテストファむルからの

この問題は、次の方法で回避できたす。

  • 1぀のファむルからのみJestテストを実行したす。 うん...たったく珟実的ではないので、次のオプションを参照しおください。
  • --maxWorkers=1フラグを䜿甚したす。 どういうわけか、これは私にずっおうたく機胜したす。 私の掚枬*は... Jestは同じプロセスで実行され、メむンプロセスにパむプで戻すために各プロセスからstdoutをバッファリングする必芁はありたせん。

私のguess*が予想される動䜜である堎合は、ドキュメントを曎新しお明確に瀺すこずをお勧めしたす。これにより、開発者が「なぜ私のconsole.logが衚瀺されない...時々」を理解しようずしお時間を無駄にするこずがなくなりたす。

OKですから、これは今日の私を含む䞀郚の人々にずっおはただ問題です。 これからもそうなるず思いたす。

私のテストから、Jestはログを出力する前にプロセスを終了したす。これは、ログが飲み蟌たれおいるように芋えるこずを意味したす。

私の堎合、jest構成でverbose: trueずbail: falseを蚭定したした。 Jestは、すべおのテストが実行されるたで続行し、すべおの゚ラヌずログを出力したす。 これは有利です。 --runInBandも実行したした。これは、 --maxWorkers=1を蚭定するのず同じです。

最倧の助けはbail: falseた。これにより、すべおのテストを終了するたで実行できるようになりたした。 それでもコヌド1が、すべおのログを再び衚瀺できたす。

ノヌドv8.1.4でJestv19.0.2を実行したす。

--verbose --testPathPattern=<path/to/file>実行するず、ログが印刷されたした。 そうでなければ、それは飲み蟌たれたす。

誰かがjest21.2.0ず珟圚のノヌド぀たり4.8.4、6.11.4、たたは8.7.0で倱敗する小さな耇補を提䟛できたすか

verboseたたは远加のjest構成を構成する必芁はなく、ノヌドバヌゞョンを7.4.0から8.0.0にアップグレヌドするず問題はなくなりたした。 それが私の芳察です。

[email protected]

これはずおもむラむラしたす 私はすべおの最新バヌゞョンを持っおいたすが、それでもJestは䞀芋ランダムな堎所でconsole.log出力を切り萜ずしたす。 これにより、倱敗したテストのデバッグが非垞に困難になりたす。

私はこれに察する答えを芋぀けたした 詳现モヌドをオフにするず、すべおのconsole.log出力が衚瀺されたす。 Jestの出力が冗長なものである堎合、最埌のいく぀かのconsole.logsからの出力の䞊にそれを曞き蟌みたす。

これを䞀貫しお再珟するコヌドがありたすか 問題の原因ずなる根本的な䞍敎合を解消するのに圹立぀可胜性がありたす。

壊れたものを修正しようずしたずきに、 expect(<value>).toEqual("someImpossibleValue")ずbail: falseを䜿甚しおこれを回避したした。 絶察に理想的ではありたせんが、迅速で汚い...

たぶん、expectに䌌おいるが、保釈されないassume関数を導入するこずができたす。

v 22.0.4 no console.log ....を実行しおいたす。これを他の倚くの理由の1぀に远加しおください。jestはお勧めしたせん。

@mvolkmann冗長モヌドに぀いおのヒントをありがずう。 非蚀語モヌドがjestのデフォルトである堎合は、倉曎を怜蚎する䟡倀があるかもしれたせん。 コヌドに配眮したconsole.logが衚瀺されないこずは、私には盎感的ではないようです。 これは、テストが倱敗したずきに最初に詊みる基本的なこずです。

ここではノヌドv9.3.0ずjest v20.0.4

jest ^21.2.1およびnode 8.9.4

Jestはただ時々コン゜ヌルログをスロヌしたせん、 --verboseオプションは私にずっお問題を解決したせん。 この問題が解決された理由がわかりたせん。

@fega誰も私たちが匕っ匵っおテストできる耇補ケヌスを提䟛しおいないので。

$ jest --verbose

このコマンドは、すべおのコン゜ヌルログを衚瀺したす

@odykyiは私には機胜したせん。 jest22.1.0およびv8.9.4

奇劙な行動。 verboseをfalse 、console.logステヌトメントが出力されたした。

jest @ v22.4.0 、 node @ 8.9.4で、 --forceExit 、明瀺的にverbose蚭定しない限り、テストしたコヌドからのconsole.logの出力が衚瀺されたせん。 falseか、 --forceExitフラグ䞀時的に䜿甚しおいたすを削陀したす。

jest @ v22.4.0 、 node @ 8.9.4で、 -forceExitを䜿甚するず、verboseを明瀺的にfalseに蚭定するか、-forceExitフラグを削陀しない限り、テストしたコヌドからconsole.logの出力が衚瀺されたせん䞀時的に䜿甚しおいたす。

䞊蚘ずたったく同じ動䜜が芋られたす。 jest @ v22.4.0 、 node @ 9.5.0。

done()が呌び出される前のconsole.loggingですが、出力は--forceExit衚瀺されたせん。 --forceExitを削陀するず、最埌にconsole.logの出力が衚瀺されたす。

Test Suites: 1 passed, 1 total
Tests:       35 skipped, 1 passed, 36 total
Snapshots:   0 total
Time:        2.512s
Ran all test suites matching /test\/api.test.js/i.
  console.log test/api.test.js:247
    bar

それで、出力バッファjestが内郚に持っおいるものは䜕でも、匷制的にフラッシュを終了する前に、ここで明癜な解決策はありたせんか

テストケヌスがありたす https 

誰かが私たちが芋るこずができる耇補リポゞトリを蚭定できたすか

簡単な远加 jest --no-cacheは、console.logsが衚瀺されないこずも意味しおいるようです。

Node 9.7.1では、verboseを䜿甚したbabel7でのjest22.4.2は、テスト内からコン゜ヌルログを衚瀺するのに問題なく機胜するようです。

package.json

"dependencies": {
  ...
},
"jest": {
  "verbose": true
}

これがナヌザヌの介入を必芁ずしなかったのでしばらく経ちたしたが、救枈策は䞀貫しおいるようです。

この問題はたた、かなり長い間私たちを悩たせおきたした。最初は出力がランダムに切り捚おられ、珟圚は出力が完党に無芖されおいたす。 再珟するには、このリポゞトリのブランチdev / dexie-search-indexのクロヌンを䜜成したす。
[email protected] WorldBrain / Memex.git

src / search / index.test.tsのinsertTestDataのどこかにこの行を远加したす。
console.log('!?!?!?!!?!?!!?'); expect(1).toBe(2)

Node.jsバヌゞョン6.11および8.10でテスト枈み。 コヌディングが非垞に遅くなるので、できるだけ早くこれを解決しおください:(

@frankredありがずう。 verbose: "false"を蚭定するず、機胜したす。

昚日この問題https://github.com/evanw/node-source-map-support/issues/207に遭遇したしたが、ここではこの問題ず非垞によく䌌おいるように芋えたした。

これが問題ずなる理由は、Node.jsのprocess.stdoutぞの曞き蟌みが非同期である堎合があり、Node.jsむベントルヌプの耇数のティックで発生する可胜性があるためです。 ただし、process.exitを呌び出すず、stdoutぞの远加の曞き蟌みを実行する前に、プロセスが匷制的に終了したす。

https://nodejs.org/api/process.html#process_process_exit_code

コヌドを確認しおいたせんが、 process.exit()が--forceExitで䜿甚されおいる堎合、ログ出力が倱われる理由が説明されたす。

この関連する問題で私のために働いた解決策を远加したした https 

@ledbitそれは私にはうたく

それは本圓ですが、開発者が続けるこずはただ倚くありたせん。

この問題は、非同期の䟋のネストされた非同期呌び出しで最も䞀般的に芋぀かりたした。 他の人の堎合はよくわかりたせんが、console.logの䜿甚を瀺すこずは、これを解決するのに確かに圹立ちたす。

それは確かに私のために起こっおいたす。 あなたがそれを修正するこずができるようにあなたは私から䜕が必芁ですか

2018幎3月22日午前8時32分、DennisBrownの[email protected]は次のように曞いおいたす。

それは本圓ですが、開発者が続けるこずはただ倚くありたせん。

この問題は、非同期の䟋のネストされた非同期呌び出しで最も䞀般的に芋぀かりたした。 他の人の堎合はよくわかりたせんが、console.logの䜿甚を瀺すこずは、これを解決するのに確かに圹立ちたす。

—
コメントしたのでこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHub https://github.com/facebook/jest/issues/2441#issuecomment-375349444で衚瀺するか、スレッドをミュヌトしたすhttps://github.com/notifications/unsubscribe-auth/ADrayIO4NBB2dZM1XL8ZQO32W9SUnu2Yks5tg8QCgaJpZM4LV

さらに良いこずに、それのために行きなさい これが私のリポゞトリです。 https://github.com/RALifeCoach/handandfootserver.git

npmからjestを実行するか、コマンドラむンから実行したす。 console.logが非垞に倚いこずがわかりたすが、ほずんどが隠蔜されおいたす。

そこに-開発チヌムは圌らが必芁ずするすべおを持っおいたす。 この問題を修正しおください。

2018幎3月22日午前8時36分、Christopher [email protected]は次のように曞いおいたす。

それは確かに私のために起こっおいたす。 あなたがそれを修正するこずができるようにあなたは私から䜕が必芁ですか

2018幎3月22日には、午前8時32分で、デニス・ブラりン< [email protected] [email protected] >曞きたした

それは本圓ですが、開発者が続けるこずはただ倚くありたせん。

この問題は、非同期の䟋のネストされた非同期呌び出しで最も䞀般的に芋぀かりたした。 他の人の堎合はよくわかりたせんが、console.logの䜿甚を瀺すこずは、これを解決するのに確かに圹立ちたす。

—
コメントしたのでこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHub https://github.com/facebook/jest/issues/2441#issuecomment-375349444で衚瀺するか、スレッドをミュヌトしたすhttps://github.com/notifications/unsubscribe-auth/ADrayIO4NBB2dZM1XL8ZQO32W9SUnu2Yks5tg8QCgaJpZM4LV

@RALifeCoachは今あなたのリポゞトリを芋おいお、そこにはかなりのロギングがありたす。 特にどのログが欠萜しおいるのかを指摘しおください。

それを実行したす。 いく぀かの出力が衚瀺されたすが、倚くは䞊曞きされたす。

土、2018幎4月14日には、午前3時10分AM Simen Bekkhus [email protected]
曞きたした

@RALifeCoach https://github.com/RALifeCoachが今あなたのリポゞトリを芋お、
そこにはかなりのロギングがありたす。 どのログむンを指摘するか
特にあなたが行方䞍明ですか

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/facebook/jest/issues/2441#issuecomment-381318608 、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/ADrayHQCc8C0NmMmrtE7mEo2jN999CChks5tocsKgaJpZM4LVbUv
。

䞊曞きずはどういう意味かわかりたせん。 コン゜ヌルに出力されたものはクリアされたすか

console.logを䜿甚しお6行を蚘述した堎合、6行が短時間衚瀺されおから
テストの芁玄は、6行の䞀郚ず重耇しおいたす。

土、2018幎4月14日には、8:58 Simen Bekkhus [email protected]
曞きたした

䞊曞きずはどういう意味かわかりたせん。 に出力されるものはありたすか
その埌、コン゜ヌルがクリアされたしたか

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/facebook/jest/issues/2441#issuecomment-381339074 、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/ADrayF0P5SqpHjaAAYcPaIAF7ubSMVRTks5tohyIgaJpZM4LVbUv
。

@RALifeCoachが説明しおいるこずも経隓しおいたす。 テストが開始されるず、ログ出力が画面に点滅したす。䞊にスクロヌルするず、その出力は衚瀺されなくなりたす。

ノヌド8.11.1でも、これはただ問題のようです。 たぶん、新しいバグを報告しお、ここに戻っお参照する必芁がありたすか

ノヌドv8.9.0でも同じ問題が発生したす。

ログ出力が「䞊曞き」されおいるずいう@RALifeCoachのコメントを確認できたす。最終的に、各ログに特定の文字列 @@@ をタグ付けしお実行するこずで、ログが衚瀺されるようになりたした。

yarn test --verbose | grep '@@@'

これはひどいハックですコン゜ヌルの色はすべお倱われたすが、テストの倱敗ず最終的なテストの抂芁は衚瀺されたすが、これたでに機胜したのはそれだけです。 私は䞊蚘のコメントで他のすべおを詊したした。 そのノヌト--verbose argが、この゜リュヌションのために必芁であるそれは暗黙的ず組み合わされおいたす--watchを介しお、 react-scripts 。

[最新のJestv23.0.0、ノヌドv8.11.2を䜿甚するためにフォヌクされたreact-scriptsを䜿甚する]

package.jsonに"verbose": trueを蚭定するず圹立ちたす。 ログは出力の䞋郚に衚瀺されたす。

クロヌズドな問題の男私はそれが2幎前に䜜成されお以来、人々がこれに぀いお䞍平を蚀うのを今でも芋おいたす。

Jestには、私たちに冗談を蚀っおconsole.logを「ハむゞャック」するコヌドがあるず思いたす。
それをノヌオペレヌションにする、のようなもの...

console.log = function(){ /* do nothing */}

console.logをリセットするための救枈策は、皮肉なこずに十分です-https//stackoverflow.com/questions/7089443/restoring-console-logを参照しおください
--console.logを削陀したす

delete console.log
console.log("Can you hear me now, Jesters...?");

...そしお突然-出来䞊がり -炎の䞭のフェニックスのように- console.log()はゞェストで再び機胜したす...
Jestは、メッセヌゞをログに蚘録する前に「console.log堎所情報」を出力したす...

>>

console.log __tests __ \ libarray-helpers.test.js35
聞こえたすか、道化垫 

たた、私は最近、console.logの代わりに同圢の「logatim」 https://www.npmjs.com/package/logatimを䜿甚しおい
Jestのハむゞャックの詊みの圱響を受けないようです...倚分それはconsole.logをリセットしたす...

console.logをlogatimで先制的に「ハむゞャック」するこずもできたす
「情報」レベルのメッセヌゞを緑色で蚘録するには...

// const logatim = require('logatim') // ES5
import logatim from 'logatim' // ES6
/* ... */
console.log = function(...args){ logatim.green.info("[INFO]",...args) } // ES6

私の喜びを奜奇心ず解釈しないでください...それに぀いお少し冗談を蚀うこずができないなら、玠晎らしい補品をJestず名付けるこずの喜びはどこにありたすか...

憎しみを広める前に、 @ yanshuf0は、明らかに恩恵を受けおいる無料のオヌプンツヌルを怜蚎しおください。 Jestを䜿甚するこずを遞択したした。 気に入らない堎合は、退䌚するこずを遞択できたすたたは、自分で修正する堎合、チヌムは友奜的でPRにオヌプンです。

私はこの「䞊曞き」の問題Windows 10、VS Codeタヌミナル、node.jsプロゞェクトを抱えおいたしたが、それをいじっおいるず、バグは発生しなくなりたした。 --watch䜿甚をやめたため、たたは"verbose": falseオプションを远加したため、発生しなくなったず思いたしたが、これらの倉曎を元に戻しおもバグは再発したせんでした。

ただし、Jestは、ログ出力をそれを生成したテストに意図的に関連付けないのでしょうか。 しばらくの間、すべおのコン゜ヌル出力はすべおのテスト結果を䞋回りたしたが、珟圚はすべおのテスト結果の䞊に衚瀺されおいたす。 ずおもランダム。

--watchAllフラグがそれをブロックしたした。 今それは私のために働く

䜕ヶ月もjestを䜿甚した埌、これはノヌド8.9で突然私にも起こりたした。 1分間のconsole.logは正垞に出力され、次は動䜜を停止したした。 私はこのスレッドに行き着き、いく぀かのこずを詊したした。 --watchを䜿甚しないず問題は解決したしたが、毎回テストコマンドを再実行する必芁がありたした。 --watch --verbose falseを䜿甚するず問題が修正され、テストが自動的に実行されたす。

ここで同じ問題を芋぀けたした。䞀時的な修正@bkempnerに感謝したす

これが22.4.4ず23.4.1の䞡方の問題であるこずを確認できたすこのコメントの時点で珟圚。 私が䜿甚しおいるフラグは次のずおりです。

$ jest --forceExit --runInBand --bail --ci --json --outputFile=/tmp/jest_results.json

同じトピックに関する別の問題は、しばらくの間機胜した--jsonオプションの远加を提案したした...それ以降、䟝存関係が倉曎された可胜性がありたすが、STDOUTおよびSTDERRの出力は垞に抑制されたす。 うたくいったものに最も近いのは--watchを䜿甚するこず

--silentはデフォルトでtrueであるこずがわかりたした。これをfalseに蚭定するず、console.logが出力されたす jest --silent=false

これはただたくさんの報告のようですが、明らかにただ䜕かが壊れおいたす。 これは、珟圚閉じられおいる2166の耇補ずしお閉じられたしたが、それでもこれは持続したす。

@thymikeeこの問題を再開できたすか

問題が郚分的に戻っおおり、修正する必芁があるため、これを再開したす。

v23では、問題はりォッチモヌドで発生したす。これは、内郚での動䜜方法を倉曎しお、ほずんどの堎合、テストを䞊行しお実行するようにしたため、TTYがブロックされず、長時間実行されるテストを簡単にキャンセルできるようになりたした https// github。 com / facebook / jest / pull / 6647。
りォッチモヌドでワヌカヌを生成しない唯䞀のケヌスは、実行するテストが1぀だけで、比范的高速1秒未満で実行の堎合です。この堎合でも、 console.log通垞どおり衚瀺されたす。

私の堎合は、りォッチモヌドですべおのテストを実行するず、正垞にログむンありたせん。 パタヌンモヌドを䜿甚しお1぀のテストクラスのみにフィルタヌをかけるず、ログが切り捚おられたす

@davidgilbertson https://github.com/facebook/jest/issues/2441#issuecomment-286248619のコメントによるず、package.jsonのverbose: trueを削陀し、 --verboseを削陀したす。コマンドラむンフラグを䜿甚するず、他の方法では非衚瀺になっおいたコン゜ヌルログを衚瀺できたす。 それはかなり玛らわしいです。

package.jsonにverbose: trueがあり、 console.logステヌトメントが存圚する堎合ず存圚しない堎合がありたす党郚で10個の堎合、それらは衚瀺されるように芋えたすが、衚瀺されない堎合がありたす 1぀だけ-これはおそらく非同期の問題だず思いたす

私も時々この問題を抱えおいたす。 runInBand https://jestjs.io/docs/en/cli.html#runinbandを有効にするず、修正されたす。

@ndelangenそれは奜奇心が匷いです-それはおそらく非同期の問題ではないかず思いたす。 Jestがすべおのconsole.logを収集し、最埌にそれらを印刷したず思いたしたね。

verboseを䜿甚しおいなくおも、問題が繰り返し発生しおいたす。

--runInBandは私のためにそれを修正したせん。 これたでのずころ、信頌できる唯䞀の回避策は、出力の䞀郚がjestによっお䞊曞きされないように、䜕かを耇数回ログに蚘録するこずです。

私はいく぀かの分析を行い、いく぀かのコメントを远加し、ここで郚分的なパッチを䜜成するこずができたした

https://github.com/facebook/jest/issues/3853#issuecomment -413622844

線集

ここで簡単に耇補できるコヌドを含むリポゞトリ https 

ここでの出力の分析 https 

パッチは郚分的です。

  • 出力に必芁な倉曎が加えられたため、倚くの統合テストが倱敗しおいたす。
  • 時々残念ながらログ出力が最埌のステヌタス曎新埌に衚瀺されたす-理由はおそらく、子プロセスが芪に成功メッセヌゞを送信した埌に子プロセスストリヌムがフラッシュされるずいう事実です。

@philraj私にずっお同じ問題..意図したログメッセヌゞを確実に衚瀺するには、耇数回ログに蚘録する必芁がありたす

これはどのように倧きな懞念事項ではなく、できるだけ早く解決されないのですか 2016幎以降、この問題はどのように開かれおいたすか

曎新このパッチを䜿甚するず、倱敗するテストは8぀だけになりたす。

diff --git a/packages/jest-runner/src/index.js b/packages/jest-runner/src/index.js
index 2f4dd724..618a8cbf 100644
--- a/packages/jest-runner/src/index.js
+++ b/packages/jest-runner/src/index.js
@@ -97,11 +97,14 @@ class TestRunner {
     // $FlowFixMe: class object is augmented with worker when instantiating.
     const worker: WorkerInterface = new Worker(TEST_WORKER_PATH, {
       exposedMethods: ['worker'],
-      forkOptions: {stdio: 'inherit'},
+      forkOptions: {stdio: 'pipe'},
       maxRetries: 3,
       numWorkers: this._globalConfig.maxWorkers,
     });

+    worker.getStdout().pipe(process.stdout);
+    worker.getStderr().pipe(process.stderr);
+
     const mutex = throat(this._globalConfig.maxWorkers);

     // Send test suites to workers continuously instead of all at once to track
diff --git a/packages/jest-worker/src/worker.js b/packages/jest-worker/src/worker.js
index 5eee64af..17d76d36 100644
--- a/packages/jest-worker/src/worker.js
+++ b/packages/jest-worker/src/worker.js
@@ -87,6 +87,13 @@ export default class {
   }

   _initialize() {
+    const forceColor =
+      'FORCE_COLOR' in process.env
+        ? process.env['FORCE_COLOR']
+        : // $FlowFixMe: Does not know about isTTY
+          process.stdout.isTTY
+          ? '1'
+          : '0';
     const child = childProcess.fork(
       require.resolve('./child'),
       // $FlowFixMe: Flow does not work well with Object.assign.
@@ -94,6 +101,7 @@ export default class {
         {
           cwd: process.cwd(),
           env: Object.assign({}, process.env, {
+            FORCE_COLOR: forceColor,
             JEST_WORKER_ID: this._options.workerId,
           }),
           // Suppress --debug / --inspect flags while preserving others (like --harmony).

それらは䞻に、process.env、hg scm、およびpackages/jest-runner/src/__tests__/test_runner.test.js FORCE_COLORSがストリヌムを完党にモックしおいないこずを期埅しおいたせんしたがっお、パむプメ゜ッドはありたせん。

このレヌトで、来週修正するPRを送信できたす...レポヌト党䜓が終了した埌に衚瀺されるログ出力の修正が芋぀かった堎合。

@bkempnerが蚀ったように、 --watch --verbose falseするず問題が修正されたす。

--watchコン゜ヌル出力は、カヌ゜ルを動かすjestによっお䞊曞きされ、私が芋おいるものず䞀臎しおいたす。 --verbose 、 --maxWorkers 1 、 --runInBand有無は成功したせん。

私の珟圚の回避策はjest --watch | catです。 私はすべおの色を倱い、りィンドりの䞊郚に留たりたすが、コン゜ヌル出力を取埗したす。

たたは、 TERM=dumb jest --watch 。 りィンドりの䞊郚に留たるこずができなくなりたすが、色ずコン゜ヌル出力が埗られたす。

私も同じ問題を抱えおいたした。

私のために働いたのはconsole.debugを䜿うこず

TERM=dumbは私のためにもそれを修正したす

FWIW、TERM = dumbは私のためにもそれを修正したす

jest蚭定でverboseを無効にするず、0_o \が機胜したした

package.jsonの「test」スクリプトに--verbose falseを远加するず、問題が解決したした。 このスレッドがなければ、私はそれを芋぀けるこずができなかったでしょう。

䟋えば

"scripts": {
    "test": "jest --watch --verbose false"
}

最埌のコン゜ヌルの䞀郚が消えるが、すべおではないずいう奇劙な方法で、watchコマンドの--verbose falseで修正したした。

--watchなしで実行するず正垞に動䜜するため、それを実行するのは監芖フラグに関するものです。

皮肉なこずに、console.logが機胜するず、より冗長になりたす。

Jest 23.6で詳现にこの問題に気づき始めたしたが、23.5にロヌルバックしたしたが、ただ衚瀺されおいたす。 --clearCacheを実行するず、再び倱敗するたでしばらくの間冗長性が修正されたす。 倚くのログの倱敗やその線に沿った䜕かなど、トリガヌが䜕であるかはわかりたせん。 それが発生するず、Jestがキャッシュを砎壊するように芋えたす。 私は--verbose falseを詊しおいたすが、それが先に進むのを劚げるかどうかを確認しおいたす。

ありがずう@jamespolanco --clearCacheオプションを䜿甚するず、圓面の間問題が修正されたした。 --no-cacheオプションを䜿甚しおテストを実行し、それによっお問題が今埌再発しないかどうかを確認したす。

線集私の問題は、私のconsole.logメッセヌゞの䞀郚だけが印刷されたこずでした。 1回のテストで5぀のconsole.log行を䜿甚したしたが、最初の3行だけが印刷されたした。 --clearCacheを䜿甚するず、この問題が修正されたした。 console.logが衚瀺されない別の問題があるのではないでしょうか。

私もこの問題を抱えおいたす。 console.log、console.debug、およびconsole.errorを䜿甚しおみたした。 --no-cacheフラグも䜿甚しおみたした。 すべおの堎合においお、私のコン゜ヌルステヌトメントは完党に無芖されおいたす。

りォッチモヌドでもこの問題が発生しおいたす。 バヌゞョン23.6.0

誰かが自分で芋たいず思ったら、私もそれを蚘録したした
asciicast

他の人ず同じように- --watch実行しおいる堎合にのみ消去されたす。 --verbose falseを詊したしたが、圹に立ちたせんでした。

私も同じ問題を抱えおいたす。

詳现を䜿甚しおいるずき、たたはりォッチモヌドのずきにもこれが発生したす

信じられないかもしれたせんが、゚ラヌのスロヌをログに蚘録するこずがありたす。 たた、 node --inspect node_modules/.bin/jest --runInBand mypath/to/my.test.jsを実行するず、私の堎合は実際のconsole.log出力が衚瀺されたす。

ノヌドv9.11.1
ゞェストv23.6.0

package.json Jest構成

  "jest": {
    "preset": "react-native",
    "verbose": true,
    "testEnvironment": "node",
    "haste": {
      "defaultPlatform": "android",
      "platforms": [
        "android",
        "ios",
        "native"
      ],
      "providesModuleNodeModules": [
        "react-native"
      ]
    },
    "setupFiles": ["<rootDir>/__tests__/setup"]
  },

この問題は冗長であるず確認したした。 問題は、詳现がオンのずきに行数の蚈算が混乱するこずです。

誰かが私にメッセヌゞを印刷する堎所を教えおくれるなら、私はそれを突き刺すこずができたす。

圓面はjest-watch-toggle-configを䜿甚しお発行を軜枛できたす。

次のように蚭定したす。

module.exports = {
  "watchPlugins": [
    ["jest-watch-toggle-config", { "setting": "verbose" }]
  ]
}

テストを実行するずきは、 vを抌しお詳现を有効にし、もう䞀床v抌しお無効にしたす。

その埌、詳现をオフにしおおく限り、すべおのログを衚瀺できたす。

--verbose=falseは、酵玠を浅くテスト酵玠マりントの修正なしで機胜しおいたした。

これは、゚ラヌがreact-test-rendererによっおログに蚘録される方法ず、reactの組み蟌みレンダラヌによっおログに蚘録される方法の違いを瀺唆しおいたす酵玠はコン゜ヌル機胜をたったく混乱させないため

参考たでに、このPRは私にずっおの問題を修正したす-https //github.com/facebook/jest/pull/6871

ただ準備ができおいないため、アプロヌチを倉曎する必芁があるかもしれたせんが、ログに蚘録されたすべおのデヌタを詳现モヌドで衚瀺したす。

ただ曎新されおいたせんがjest 22.4.2を実行、監芖モヌドを䜿甚するずログが衚瀺されたせん。 --runInBand実行するず、りォッチモヌドで修正されたした。

    "test": "jest --watch --runInBand",
    "test:once": "jest",

私も曎新しおいたせんJest 23.6.0。「jest --watch --verbose = false」を指定しお実行するず、修正されたす。

䞊蚘のPRをテストするために問題を抱えおいる人々を望んでいたす。 jest@beta利甚可胜です珟圚24.0.0-alpha.9 

それで、糞はjest @ betaを远加し

オンス。 19.des。 2018kl。 1646 skrev Simen Bekkhus [email protected] 

䞊蚘のPRをテストするために問題を抱えおいる人々を望んでいたす。 これは
jest @ betaで利甚可胜珟圚24.0.0-alpha.9

—
このスレッドにサブスクラむブしおいるため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/facebook/jest/issues/2441#issuecomment-448641697 、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAM5P7ijQjSbWB0-zzDCfC9Uggyk5RGoks5u6l9EgaJpZM4LVbUv
。

>>


Tarjei Huse
モヌビル920 63 413

@tarjei 、はい

yarn add --dev jest<strong i="7">@beta</strong>

それは私のために働いおいたす。 🎉

これは本圓にばかげおいたすが、他の誰かを助けるために、私は新しい私にずっおプロゞェクトに取り組んでいたす-jestは出力を無効にする--silentオプションで実行されおいたした。 それを削陀するず、ログが衚瀺されたす🀊‍♂

詳现が有効になっおいる堎合 jest-watch-toggle-configを䜿甚しお切り替えたす、コン゜ヌルログの䞀郚がベヌタ版でブロックされおいるこずに泚意しおください。

--verbose = false

これは私のために働いた。

䞀郚のconsole.log()が機胜しおいるのに、他の

const something = () => new Promise(resolve => {
  console.log('NOT logged for some reason!')
  setTimeout(resolve, 100);
});

describe('Something', () => {
  it('logging works in non-async test', function () {
    console.log('logged 1')
    console.log('logged 2')
    expect(true).toBe(true);
  });

  it('console log does not work well in async test', async () => {
    console.log('logged 3')
    await something();
    console.log('NOT logged!')
    expect(true).toBe(true);
  });
});

/* Output:
> logged 1
> logged 2
> logged 3
*/

asyncテストでは、非同期テストの最初のconsole.logがログに蚘録されず、 await埌のテストもログに蚘録されないずいう、非垞に奇劙なこずが起こっおいたす。

そのasyncテストにさらにconsole.logを远加するず、 await突然機胜した埌、いく぀かのログのようなさらに奇劙な動䜜に気付くでしょう🀷‍♀🀷‍♂

぀たり、 @ philwhlnが2幎前に曞いたこず

単玔なテストではこれを分離できないので、より耇雑な非同期テストの実行ず関係があるず思いたす。

それにはいく぀かの真実があるようです。

--verbose = false

この堎合も私のために働いた。

@DanweDEは、verboseがtrue蚭定されおいる堎合でも、最新のアルファyarn add jest<strong i="6">@beta</strong> --devで問題が修正されるかどうかを確認できたすか

--verbose false远加するず、問題が修正されたした。 それは少し盎感的ではないようです:)

これは修正されおいたすか 「jest」にconsole.logsがただ衚瀺されおいたせん「23.6.0」

@iDVB䞊蚘のスレッドをいく぀か読んだら、問題を修正するこずになっおいるベヌタ版があるこずがわかりたす。 それを詊しお、問題が解決したかどうかを報告しお@spionを支揎しお

たた、 --verbose falseたたは--verbose trueあるいはフラグたたはNodeたたはJestバヌゞョンの任意の組み合わせで問題が修正されたず蚀う人は誰でも、ベヌタ版を詊しお、回避策なしで問題が修正されるかどうかを報告しおください。

テストしおいるクラスのコン゜ヌルログは衚瀺されたす

@philraj @leaplabsでベヌタ版"24.0.0-alpha.9"に切り替えたしたが、問題なく動䜜したす。 アップグレヌドしおからログが消えおいないずいう意味で。

確認も可胜で、コマンドラむン匕数なしで24.0.0-alpha.9で動䜜したす。

私はReactずJestに比范的慣れおいたせん。 create-react-appのデフォルトを䜿甚しお、䞀貫性のあるログを取埗できたせんでした。 排出したしたが、ログは正垞に機胜しおいたす。 むゞェクトによっおJestのバヌゞョンが倉わったずは思いたせん。 たぶん、それはJestの実行方法の蚭定の1぀を倉曎しただけです。 これは23.6.0です。

䜿甚する堎合は24.0.0-alpha.16 、私は远加しない限り、私は、任意のコン゜ヌルログが衚瀺されおいないverbose=false 。

[email protected]でも、これでもかなり䞀貫性のない結果が埗られ

--verbose=false私もこれを修正したした🎉

私は24.1.0を䜿甚しおいたすが、詳现なオプションがなくおも機胜したす。 ただし、テストファむルに䟋が含たれおいる堎合、テストファむルにconsole.logステヌトメントは出力されたせん。 むンポヌトされないクラスぞの参照。 䟋えば

image

これはts-jestからの゚ラヌであり、ここではあたり関係ありたせん

はい。ただし、その゚ラヌが発生した堎合、コン゜ヌルログの出力は衚瀺されたせん。 それはただts-jest関連しおいたすか 私は、jestの呚りの各ラむブラリが䜕を担圓しおいるのかよくわかりたせん。

IDKはts-jestがどのように機胜するかを瀺したすが、タむプ゚ラヌに察しおテストを実行しない堎合は、タむプ゚ラヌが欠萜しおいる理由を説明したす-コヌドは実行されたせん

console.logここで機胜させるのにただ苊劎しおいたす。 私は時々ログを取埗しおいたすが、成功するための識別可胜なパタヌンはないようです。

Jest 24.7.1を䜿甚しおいお、 24.7.1ず24.2.0-alpha.0も詊したした。

verbose=falseずverbose=true䞡方を蚭定しおも、修正を提䟛できたせんでした。

たた、ノヌドv10.8.0ずv6.17.1 、これも修正されおいたせん。

ここに欠けおいるものはありたすか

@mulholioは、

はい、Jestのグロヌバルバヌゞョンはむンストヌルされおいたせん

解決されおいないこずを確認できたす。 console.logが機胜するこずもあれば、機胜しないこずもありたす。
私の環境は次のずおりです。
ゞェスト23.6.0
ノヌドv8.13.0
ず私のjest.config.js

const path = require('path');

module.exports = {
  moduleNameMapper: {
    "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
    "\\.(less|css|scss)$": "<rootDir>/__mocks__/cssMock.js",
    "^@\/(.*)$": "<rootDir>/src/client/$1",
  },
  bail: true,
  setupTestFrameworkScriptFile: "<rootDir>/setupTests.js",
  collectCoverageFrom: [
    "src/client/**/*.{js,jsx}",
  ],
  verbose: true,
  coverageReporters: ["text", "text-summary", "lcov", "json"],
  coveragePathIgnorePatterns: ["src/client/index.js"],
}

ええ、 verbosetrueを削陀した埌は、問題ないようです

このバグも衚瀺されたすが、この問題を再床開くこずはできたすか

参考 fitを䜿甚しお単䞀のテストを実行した堎合、 console.logは䜕も出力したせんでした。 䞀連のテスト党䜓を実行したずき、 console.logは問題なく機胜したした。

同じ問題が発生するず、䞀郚のコン゜ヌルログが「食べ尜くされ」たす。 この問題を抱えおいる人のために、耇数のコン゜ヌルログを確認しおクロヌンを䜜成できたすか

console.log('ok');
console.log('ok');
console.log('eaten up');

[PASS]ステヌトメントのバッファヌが最埌の2぀のコン゜ヌルログ行を䞊曞きしおいるようですPassステヌトメントの最埌にコン゜ヌルログ行番号の䞀郚が衚瀺されおいたす

+1000

本圓にばかげおいるように聞こえたすが、テストの前にyarn buildを確認しおください

[email protected]を䜿甚しおも、 --verbose=trueたたは--verbose=falseの出力はありたせん。最初にログに蚘録されおから、3幎経っおも問題が発生する理由はわかりたせん。

jestフラグ--runInBandを䜿甚しお、テストを連続しお実行するこずで解決するかどうかを確認したしたか 誰かが私にこれに぀いお蚀及したしたが、それをテストする機䌚がありたせんでした。

ありがずう、それはうたくいきたす しかし、console.log。の出力を持぀ようにデフォルトに蚭定しおみたせんか。

これは私にずっおただ問題です、 jest @ 24.8.0

私は実際に修正を芋぀けたした。最埌のテストケヌスの最埌の2行カスケヌドが䞊曞きされるので、これを最埌のテストケヌスにしたす

it('bugfix for [email protected]', () => {
  console.log("[email protected] bug|last 2 lines get override. remove this once 24.8.0 gets fixed");
  console.log("[email protected] bug|last 2 lines get override. remove this once 24.8.0 gets fixed");
});

ts-jestを䜿甚しおいる堎合は、console.logsを衚瀺するために蚺断をオフにする必芁がありたした。
jest.config.js

  globals: {
    'ts-jest': {
      diagnostics: false,
    },
  },

ts-jestを䜿甚しおいる堎合は、console.logsを衚瀺するために蚺断をオフにする必芁がありたした。
jest.config.js

  globals: {
    'ts-jest': {
      diagnostics: false,
    },
  },

このオプションは私たちには機胜したせんでした。 たた、 verbose = falseを蚭定しおみたしたが、どちらも圹に立ちたせんでした。

私たちの環境

  • ノヌド10.16.0
  • ゞェスト24.8.0
  • ts-jest24.0.2
  • typescript 3.5.2
  • @ types / jest 24.0.15

[PASS]ステヌトメントのバッファヌが最埌の2぀のコン゜ヌルログ行を䞊曞きしおいるようですPassステヌトメントの最埌にコン゜ヌルログ行番号の䞀郚が衚瀺されおいたす

これは私には圓おはたるようです[email protected]。 私のシステムでは、[PASS]のある端末出力ラむンは、クリアされる前に䞀郚のコンテンツを点滅させおいるように芋えたす。

この問題も経隓しおいたす。

䞊蚘の゜リュヌションのいずれかでログに蚘録するこずはできたせんが、回避策ずしお、倀で倱敗し、差分を確認するこずが期埅されたす。

expect(thingIWantToLog).toBe({})

これにも遭遇したした。「PASS...」出力がstdoutを䞊曞きしおいるようです。そのため、「最埌の」console.logが食べられたす。

--verbose=falseが機胜しない堎合は、最埌のconsole.logに䞀連の犠牲改行 \n を远加できたす。

jestフラグ--runInBandを䜿甚しお、テストを連続しお実行するこずで解決するかどうかを確認したしたか 誰かが私にこれに぀いお蚀及したしたが、それをテストする機䌚がありたせんでした。

このフラグを远加するず、問題の䞊べ替えに圹立ちたした。
時々、console.logの出力も衚瀺されたせんでした。
このコマンドの䜿甚
npm test -- --verbose --runInBand -t "My Test Name"

ノヌドずNPMのバヌゞョン
node v8.16.0
npm 6.4.1

これが私の回避策です

npm install --save-dev sprintf-js

あなたの冗談でsetupTest.js 、たたはどこでも

import {sprintf} from 'sprintf-js';

console.log = (msg, args) => {
    const str = sprintf(msg, args);
    process.stderr.write(str + '\n');
  };

[email protected]を䜿甚しおも、 --verbose=trueたたは--verbose=falseの出力はありたせん。最初にログに蚘録されおから、3幎経っおも問題が発生する理由はわかりたせん。

これは私のjest.config.jsで、うたくいきたした。
jest -v 23.6.0  node -v 8.11.2

module.exports = {
  clearMocks: true,
  moduleDirectories: [
    'node_modules',
  ],
  testEnvironment: 'node',
  testMatch: [
    '**/__tests__/**/*.js?(x)',
    '**/?(*.)+(spec|test).js?(x)',
  ],
  verbose: false,
};

次に、 package.jsonに次のようになりたす。

"scripts": {
  "test": "jest --config ./jest.config.js",
}

次に、次のコマンドを䜿甚しお特定のテストスむヌトを実行したす。

yarn test -- -t 'test-suite-name-here'

--verbose=falseは私のために働いたようです。 ありがずう

--silentオプションを枡すず、ログず譊告が非衚瀺になりたす
yarn jest詊しおみおください

このバグはずおも迷惑です... 3幎...

オフにする--silent
ts-jest @ mr-madamin゜リュヌションを䜿甚したtsテストでは、私のために機胜したす

verboseたたはsilent 、 --runInBand 、 TERM=dumb詊し、すべおのテストず単䞀のテストファむルを実行したした。 console.logは次の堎合に衚瀺されたす。セットアップブロックに配眮されたすが、 it()ブロック内には配眮されたせん。

他のすべおが倱敗した堎合でも、次のこずができるはずです。

require('fs').writeFileSync('./output', data);

しかし、私は穎居人がピヌナッツを割るために岩を䜿っおいるような気がしたす。

線集 "jest": "^24.9.0"

私はこのコマンドを䜿甚しおいたすが、機胜したす。

npm test -- --runInBand -t "My Test Name"

-tフラグの埌にテスト名を指定しお、同じdescribeで個々のテストたたはテストのグルヌプを実行できたす。

verboseたたはsilent 、 --runInBand 、 TERM=dumb詊し、すべおのテストず単䞀のテストファむルを実行したした。 console.logは次の堎合に衚瀺されたす。セットアップブロックに配眮されたすが、 it()ブロック内には配眮されたせん。

他のすべおが倱敗した堎合でも、次のこずができるはずです。

require('fs').writeFileSync('./output', data);

しかし、私は穎居人がピヌナッツを割るために岩を䜿っおいるような気がしたす。

線集 "jest": "^24.9.0"

均䞀性を保぀ために、ようやくバック゚ンドでjestを䜿い始めるこずに興奮したした。 代わりに、私はこの問題に遭遇しおおり、珟圚、mocha / proxyquireに切り替えおいたす。 console.log出力はモゞュヌルたたはテストケヌスで衚瀺されず、数時間を費やした埌、回避策はどれも圹に立たないようです。 ファむルぞのログ蚘録を䌎う回避策には関心がありたせん...

"jest": "^24.9.0",しおノヌド8 / 10LTSに察しおテスト枈み

うん。 ゚ッゞにもむム。 ここでは、問題を解決し、明らかな問題点を3幎以䞊修正するのではなく、ハックを掚奚する方が人気があるようです。

こんにちはsamlevinずpavelloz、
このオプションを詊したしたか

私はこのコマンドを䜿甚しおいたすが、機胜したす。
npm test -- --runInBand -t "My Test Name"

-tフラグの埌にテスト名を指定しお、同じdescribeで個々のテストたたはテストのグルヌプを実行できたす。
それがうたくいくかどうか教えおいただけたすか しばらく䜿っおいるので。

これは、サンプルコヌドず出力を含むスクリヌンショットです。
泚わからない堎合は、console.lgが他のすべおのレポヌトの䞊に印刷され、コヌドカバレッゞレポヌトたたぱラヌ履歎曞が衚瀺される最埌には印刷されたせん。
Jest test console log

マむノヌドずNPMのバヌゞョン

node v8.16.0
npm 6.4.1

均䞀性を保぀ために、ようやくバック゚ンドでjestを䜿い始めるこずに興奮したした。 代わりに、私はこの問題に遭遇しおおり、珟圚、mocha / proxyquireに切り替えおいたす。 console.log出力はモゞュヌルたたはテストケヌスで衚瀺されず、数時間を費やした埌、回避策はどれも圹に立たないようです。 ファむルぞのログ蚘録を䌎う回避策には関心がありたせん...

"jest": "^24.9.0",しおノヌド8 / 10LTSに察しおテスト枈み

このスレッドのすべおの゜リュヌションをテストしたした。

この点で䜕も倉わっおいないかどうかを確認するだけです。
image

bash-5.0$ npm -v ; node -v; cat node_modules/jest/package.json |grep version
6.12.0
v12.11.0
  "version": "24.9.0",

線集

泚わからない堎合は、console.lgが他のすべおのレポヌトの䞊に印刷され、コヌドカバレッゞレポヌトたたぱラヌ履歎曞が衚瀺される最埌には印刷されたせん。

私はレポヌトの䞋郚をチェックするこずさえしたせんでした、しかしそれはたさに私のログが着陞した堎所です。 だから私はそれがうたくいくず思いたすが、䞀貫しお/誰にずっおも同じ方法ではありたせん。

image

ご協力ありがずうございたした。

問題は、それがパフォヌマンスにどの皋床の悪圱響を䞎えるかずいうこずですが、それは別の日のために、ロギングがより重芁です。

あなたは正しい@pavellozです。-runInBandオプションを指定しおテストを実行するず、次のようになるため、テストの完了に時間がかかりたす。

--runInBand, -i                 Run all tests serially in the current process
                                  (rather than creating a worker pool of child
                                  processes that run tests). This is sometimes
                                  useful for debugging, but such use cases are
                                  pretty rare.

したがっお、私が行うこずは、テストで問題をデバッグする必芁がある堎合にのみ、そのオプションを䜿甚するこずです。
それ以倖の堎合は、通垞どおりテストを実行しおください。

也杯

constコンポヌネント=浅い...
console.logcomponent.debug

これがただ修正されおいないのは信じられないこずです。

@ivandosreisandrade runInBandフラグの回避策を確認できたしたが、珟時点では、他の開発者のために䜙分な手順を远加する時間を無駄にせず、箱から出しお期埅どおりに動䜜するものに戻したした。 この点で䜕か倉曎があるかどうかを確認するためにサブスクラむブされたたたになりたす

このスレッドですべおを詊したしたが、それでもconsole.logの出力が衚瀺されたせん。 --runInBandは私にずっお問題を解決したせん。 node @ 12ず最新のjestを䜿甚し

@ u84six私の解決策を詊したしたか
投皿の私の答えぞのリンクは次のずおりです。
https://github.com/facebook/jest/issues/2441#issuecomment -552368939

也杯

@ivandosreisandrade䜕が起こるかずいうず、コヌドに゚ラヌがある堎合未定矩の倀を参照するなど、console.log呌び出しが゚ラヌの前であっおも、それは出力されたせん。 テストのすべおに合栌するず、ログが衚瀺されたす。 この皮の動䜜により、デバッグにはたったく圹に立ちたせん。

@ivandosreisandrade package.jsonはどのように芋えたすか 私はこれに埓おうずしおいたす

npm test --- runInBand -t "マむテスト名"

しかし、私はそれを私のpackage.jsonでこのように蚭定しおいたす

" testunit " "jest --verbose"

--verboseフラグを䜿甚するず、console.logを通過させるこずができるず思いたすが、それでもconsole.logを機胜させるこずはできたせん。 ずおもむラむラする

@ivandosreisandrade package.jsonはどのように芋えたすか 私はこれに埓おうずしおいたす

npm test --- runInBand -t "マむテスト名"

しかし、私はそれを私のpackage.jsonでこのように蚭定しおいたす

" testunit " "jest --verbose"

--verboseフラグを䜿甚するず、console.logを通過させるこずができるず思いたすが、それでもconsole.logを機胜させるこずはできたせん。 ずおもむラむラする

@ u84sixこれは私のpackadge.jsonです

"scripts": {
    "test": "jest test --coverage",
    ... 
},
...
"jest": {
    "verbose": true,
    "testMatch": [
      "**/tests/**/*.js?(x)"
    ],
    "moduleFileExtensions": [
      "js"
    ],
    "moduleDirectories": [
      "node_modules"
    ]
  }

testMatchは.jsたたは.jxたたは.jsxファむルのいずれかを蚱可し、moduleFileExtensionsは.jsのみを蚱可したす。 䜕かがおかしいようです。

原因ずは関係ありたせんman_shrugging
それは、それらに察しおテストを芋぀けお実行するファむルです。

問題が解決された理由がわかりたせん。 これが私のノヌドバヌゞョンです-13.12.10、npm -6.14.4
ゞェスト-24.9.0

これがmock-fsを䜿った基本的なテストです
'mock-fs'からモックをむンポヌトしたす。
import * as fs from'fs ';
'pump'からpumpをむンポヌトしたす。
import * as util from'util ';

describe('Test suite for bucket functionality', () => {
    beforeEach(() => {
        mock({
            'sample-file.txt': 'Content of the sample file',
            'sample-upload.txt': ''
        });
    });
    test('test upload', async () => {
        const filePromisy = util.promisify(fs.readFile);
        pump(fs.createReadStream('sample-file.txt'), fs.createWriteStream('sample-upload.txt'));
        filePromisy('sample-upload.txt').then(data => {
                       // when I do a console.log() here I get a warning stating that before I do an expect of data , I get a warning (no longer an error) stating that -_Cannot log after tests are done._

        }).catch(err => {

        });



    });
    test('test download', () => {

    });
});

なぜこれが起こるのかわかりたせん。 これは、テスト仕様の実行埌にのみ、console.logがnextTickで凊理されるず芋なされるむベントルヌプが原因です。 これを提起しお申し蚳ありたせんが、コン゜ヌルのo / pを実行しお芁求デヌタを確認するのではなく、すべおのテストケヌスをデバッグするのは面倒なようです。

filePromisyのpromiseをjestに返しお、テストがい぀行われたかがわかるようにする必芁があるため、問題はこれずは䜕の関係もありたせん。

䞀時的なexpectステヌトメントにログむンしたいものを眮くだけで、デバッグ目的でこの問題を回避できたした。 だから、代わりにconsole.log(sketchyVariable) 、䜿甚expect(sketchyVariable).toEqual(42) 。

ノヌド8で私のために働いたこず
console.logを䜿甚する代わりに、組み蟌みのデバッグログを䜿甚したす。

const util = require('util')
const myLogger = util.debuglog('myloggername')
myLogger('foobar')

そしお、デバッガヌフラグでjestを開始したす。

NODE_DEBUG=myloggername npm test -t "My Test Name"

1぀のテストを芋おいるず、コン゜ヌルログが散発的に衚瀺されるのを芋おいたした。 すべおのログが衚瀺される堎合もあれば、たったく衚瀺されない堎合もありたす。たた、すべおではなく䞀郚のログが衚瀺される堎合もありたす。 テストを実行するたびに、私は䜕か違うものを芋るでしょう。 😒

--verbose=falseは私のためにそれを修正したした。 verboseをtrue蚭定しおいないので、これには驚きたした。 単䞀のテストを実行しおいる堎合、 わかりたす。 🙃

実行䞭のテストファむルが1぀しかない堎合は、デフォルトでtrueになりたす。

https://jestjs.io/docs/en/configuration#verbose -boolean

関連するStackOverflowスレッド https 

jestは、耇数のレベルでの怜局をうたく凊理したせん。 そうすべき

  • デフォルトでは、倱敗時に1぀のテストでキャプチャされたすべおのログをキャプチャしお衚瀺したす
  • 䜕も衚瀺しないオプションがあり、
  • キャプチャを無効にするオプションがありたす。

それでおしたい。 それほど耇雑ではありたせん。

私の掚枬では、テストの実行時に非同期出力を正しい順序で出力しようずしおいるため、コン゜ヌルログをキャプチャしおいたす。 問題は、このロギングコヌドがナヌザヌにずっお機胜しない堎合、その環境では、ナヌザヌはかなり困惑しおいるずいうこずです。

テストをデバッグするずきにコン゜ヌル出力を確実に取埗できなかったため、䜕幎も前にjestの䜿甚をやめたした。このスレッドでどのような提案に埓ったかは重芁です。

話の教蚓は、グロヌバルコン゜ヌルを台無しにしないこずです。 これたで。 オンたたはオフにできるロガヌを提䟛したい堎合は、それを行っおください。 必芁に応じお䜿甚したす。 ただし、グロヌバルコン゜ヌルに干枉しないでください。

iOS甚のOutlookを入手するhttps://aka.ms/o0ukef


投皿者earonesty [email protected]
送信日2020幎8月12日氎曜日12:33:23 PM
宛先facebook / jest [email protected]
CcChris Grimes [email protected] ; 蚀及@ noreply.github.com
件名Re[facebook / jest]テスト実行時にconsole.logが出力されない2441

jestは、耇数のレベルでの怜局をうたく凊理したせん。 デフォルトでは、ログをキャプチャしお倱敗時に衚瀺する必芁があり、䜕も衚瀺しないオプションず、すべおを衚瀺するオプションがありたす。 それでおしたい。

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHub https://github.com/facebook/jest/issues/2441#issuecomment-673011577で衚瀺するか、 https//github.com/notifications/unsubscribe-auth/AAFCNBK5MQEA6AJHEC52ZWDSALG6HANCNFSM4C2VWUXQの登録を解陀しお

@halis私は玄4幎間Jestのオンずオフを䜿甚しおきたしたが、これは垞に問題でした。 その結果、Jestテストのデバッグは非垞に困難になりたす。

私の感芚では、Jestの䞻な圹割は、期埅される動䜜ずセマンティクスをずきどき砎るこずができれば、テスト゚クスペリ゚ンスが倧幅に向䞊するこずです。 jest.mock(...)の自動巻き䞊げのようなものは、Jestテストがセマンティクスにおいお厳密にJavaScriptたたはECMAScriptではないこずを意味したす。 同様に、䞊列凊理ずは、パフォヌマンスを向䞊させるこずができる堎合、 console.logようなvoidを返す組み蟌みメ゜ッドを非同期ずしお扱うこずができるこずを意味したす。

それは悪いこずですか ゞェストは倧成功を収めおいるので、必ずしもそうずは限りたせん。 しかし、私はゞェストが時々あなたを驚かせる胜力を持っおいるず思いたす。 たずえば、Jestナヌザヌの90は、コヌドがAST倉換されお暡擬呌び出しをホむストするこずを知らないず確信しおいたす。

たずえば、Jestナヌザヌの90は、コヌドがAST倉換されお暡擬呌び出しをホむストするこずを知らないず確信しおいたす。

䜕

console.debugたたはconsole.errorを䜿甚しおみおください

私の堎合は--useStderrを䜿甚できたす。これは、メッセヌゞを盎接枡すため、問題を解決したした。

https://nodejs.org/api/process.html#process_a_note_on_process_i_o

今日もこれに苊劎しおいお、 --useStderrフラグで修正されたした。 ありがずう@diomalta

私は同じ問題に苊しんでいたした、テストが倱敗したずきにログが衚瀺されたせんでした。

私は埗るこずができたconsole.log蚭定するこずで衚瀺するようにverbose: true私にjest.config

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡