api-easyを使用して、REST API のエンドツーエンド テストを実装しています。ライブラリ自体は非常に優れていますが、失敗したテストのデバッグは予想よりも難しく、適切なアプローチを使用していない可能性があります。
私はこの問題を抱えていました: テストはサーバーに "GET" を送信しましたが、現在 OutOfMemory のために応答していませんでした。リクエストは永久にブロックされましたが、成功または失敗したテストのみが出力されるため、出力には表示されませんでした。
すべてのリクエストを標準出力にダンプすることは可能ですか? タイムアウト オプションは、ブロッキング テストを中止する (そして失敗させる) のにも役立ちます。
私の現在のアプローチは、api-easy.js
ファイルにパッチを適用して、リクエストをコンソールにダンプすることです。
console.log(outgoing); // this line is new
if (requestImpl)
requestImpl(outgoing, this.callback);
else
request(outgoing, this.callback);
出力には、ヘッダー、uri、およびメソッドが含まれます。
Dummy "echo" REST service
{ headers: { 'Content-Type': 'application/json' },
uri: 'http://localhost/resources/echo/abc',
method: 'get' }
When using the "echo" service A GET to /echo/abc
✓ should respond with 200
✓ should respond with {"echo":"abc"}
vows runner finish
✓ OK » 2 honored (0.024s)
node_modules
ディレクトリの内容にパッチを適用しているため、これはあまり良い解決策ではありません。
Api-easy は内部的にvowを使用してデータ フローを制御します。また、誓いを使用してテストを実行します (直接または grunt-vows を使用)。詳細モード ( vows -v --spec
) を既に有効にしていますが、ブロッキング タスクを分析するには十分ではありません。成功または失敗したテストしか表示されません。