話を戻して単位試験の自動化。supertestで単体試験を実行時にtestが完了してもjestのプロセスが終了しなかったのでその覚書。(...まじで単体試験の自動化コードを書いてるときのほうが実製造作業より時間かかるのだけど。こんなもんなのだろうか。Jestが終わんない実際の状況は以下のエラーが表示されてjestのプロセスが終了しなくなった。エラー自体はjestの引数に--detectOpenHandlesを渡せばでなくなるような気もするけど、まぁ問題はそこじゃなくて。completed日本語訳テスト実行が完了した後、jestは1秒終了しませんでしたdone(同期・非同期絡み)の記載と混同してしまって調べるのにえらく時間がかかったけど、結局supertestでrequest時に起動したWEBアプリケーションの処理が残ってるからjestが終了しないだろうという結論に至った。v27からデフォルトのtestrunnerがjest-circusに変更された煽りを受けて、最新版では「普通には」使えなくなっている。#11404いままで通りdoneを使って、完了を待ちたい場合は、この記述を入れてtestRunnerをjest-jasmine2に戻す必要があるけど、今後jest-jasmine2のサポートをやめるとも書いてあったので、応急的で暫定的な処置として考えていたほうがよさそう。'jest-jasmine2'};ちなみに、testrunnerがjest-circusでもstackoverflowの有識者のコードをかませば実行可能だった。itをラップしてる感じかな。ちなみに元コードはTypescriptだったのでjavascriptに戻して、done.failがサポート外になったと記載があったのでdoneに変更してる。(この指摘をしている人はメソッド名もitにして既存コードと互換をとったみたい。);}まぁ作ってみたももの結局使わなかったけど。#11780話を戻して結局、じゃぁ何が原因なのかということで、調べてると大体出てくるのがDBコネクションの話。それ関係あるのかなぁと思いながら、DBアクセスはsequelizeで統一していたので、sequelize.close()をjestのafterAllで指定したらちゃんとプロセス終了するようになった。sequelize.close()って自動で呼び出されるから明示的に呼び出す必要ないよって公式に書いてた気がするけど・・・。あと、同一のit内で複数のrequest(app)を実行するのはできるけどitを分けてrequest(app)を実行すると相変わらずエラーが出るので、そもそものsupertestの使い方が間違ってるような気がしてならない。あと、WEBアプリケーション(app)でミスってたらjestのプロセスが起動しっぱなしになったりするので、なんだかなー。(そもそもそんなコード書くなというのは置いといて)でも、まぁ、とりあえず、今はいいか・・・。Moduleが発生したときの対処方法。TypeScriptで別ファイルに分けたらTS2451が発生する。コピーmarineをフォローするmarine神戸システムデザイン関連記事システム開発Tips[Node.js]link-module-aliasとmodule-aliasの違いNode.js名物、requireの相対パス地獄へようこそ。開発が進んでディレクトリ構成などが固まってくるとrequireの呼び出しが地獄になっていきます。メンターさんに教えていて昔自分も間違えてたなあ。思ったのでその備忘です。jQueryである要素の値をセレクトしてifで判定した際に、1のように間違った判定方法をしていました。先日初めてメンティさんと契約する運びとなりました。MENTAを通してというか、こういうプラットフォームを通じて受注したのは初めてなので何かと刺激を受けています。