1

テスト対象のコードがオブジェクトをグローバルにリークしたときに警告またはエラーを生成するようにgrunt-mochaを設定する方法を理解できないようです。ブラウザでテストしたところ、グローバルなリークが発生していることに気づきました。しかし、その後、うなり声でテストスイートを実行したところ、リークは報告されませんでした。

私はこの問題を解決するためにいくつかのことを試みました。まず、 grunt-mocha GitHubページにある構文に基づいて、grunt.jsファイルで「mocha」タスクを次のように設定してみました。

mocha: {
  all: {
    src: ['test/**/*.html'],
    options: {
      ignoreLeaks: false
    }
  }

それがうまくいかなかったとき、node_modulesディレクトリ内のgrunt-mochaコードの値を手動でに変更しようとしましたfalse。それは効果がありませんでしたが、途中で、grunt-mochaがテスト結果を一時ファイルに書き込んでから、それらを読み込んで結果を報告することで機能することを発見しました。一時ファイルを削除するコードの部分を無効にして調べました。グローバルリークに対応するエラーは含まれていないようです。

最後に、grunt-mochaのテストレポーターをMochaの組み込みの「spec」レポーターと比較して、レポートインターフェイスの一部が実装されていないかどうかを確認しました。私の知る限り、グローバルリークは通常のエラーとして報告されているため、グローバルリークが報告されないことを示唆するような明白なものは見たことがありません。

私はもともと、ヨーマンプロジェクトがテストタスクのために選んだものであるため、grunt-mochaを選びました。さらに、うなり声からMochaを実行する他のプロジェクトは、ブラウザー開発よりもネイティブMochaテスト(Node.js開発など)に重点を置いているようです。

私は通常、開発中にコードに変更を加えてブラウザーを更新するため、ブラウザーでリークを報告することは今のところ問題ありません。ただし、最終的には継続的インテグレーションサーバーを使用してテストスイートを実行したいと思います。これを正すための助けは大歓迎です。

4

0 に答える 0