がC1コード-カバレッジ分析の存在のためにルビー?[定休日]
-
08-07-2019 - |
質問
私は現在使用し Rcov 車C0コード-カバレッジ分析のためのレールプロジェクトと仕事をしています。
しかし、その結果を実際に意味があってカバー率100%にrcov("だけでなくC0分析のためほとんど記述半のテストケースの機能が存在することが明らかになるためである。
この結果からコード-カバレッジVisual Studio2008年チームを作っていただければC1ます。あるツールを提供する同様の取材のためのルビー?
解決
現時点では、Ruby用のC1カバレッジツールはありません。実際、RCov以外の カバレッジツールはありません。
最近まで、CでMRIインタープリターをパッチまたは拡張することによってのみ、このようなツールを書くことができました。約2年前から、JavaでJRubyを拡張することも可能です。 JRubyのRCovの。ただし、これにはRubyのと Cの知識と、MRIの内部をいじるのが心の弱い人のためではないため、かなり深い知識の両方が必要です。
ただし、Rubiniusを使用した場合のみ、Ruby自体でコードカバレッジツールなどの動的分析ツールを記述できるようになり、Rubyコミュニティの大部分がツール記述にアクセスできるようになります。これは、ツールベンダーの実質的な財政支援と相まって(多くの主要なIDEベンダーが、CodeGear(旧ボーランド)、IntelliJ、NetBeans、Eclipse、SapphireSteel(Ruby in Steel Visual Studio)およびMicrosoftでさえも)2009年にRubyツール空間の急速な革新につながり、C1、C2カバレッジ、NPathの複雑さ、よりきめ細かいプロファイリングなどが見られます。
それまで、私が考えているのはJavaツールを使用することだけです。 JRubyの連中は、適切なマジックメタデータを出力して、生成されたバイトコードを少なくともJavaツールで貫通できるようにします。そのため、JRubyでJavaカバレッジツールを使用できる可能性があります。ただし、実際に機能するかどうか、また機能するはずかどうかはわかりません。
他のヒント
DeepCover は、今日存在する唯一の完全なC1 Rubyカバレッジツールです。
開示: DeepCover
の共著者です。
コードカバレッジツールについては知りませんが、rubyにはheckleと呼ばれる突然変異テスターがあります。
突然変異テストでは、テスト対象のコードを変更し、それらの突然変異によって単体テストが失敗するかどうかを確認します。
残念ながら、最新の公式gem(バージョン1.4.1)にはバグがいくつかあるため、開発ブランチのコードを使用してgemをビルドすることをお勧めします。インスタンスメソッドのみを変更できます。開発ブランチのバージョンがどれだけ信頼できるかはわかりません。
テスト対象のコードがシステムを破壊する可能性がある場合(ファイルの削除など)は、突然変異テストを避ける必要があります。 ヘックルに関するFAQ および rcovとheckleの両方に関するFAQの質問。
記録のために、NetBeans 7.0にはRubyのコードカバレッジ分析が組み込まれています。 C0またはC1であるかどうかを説明するドキュメントは見つかりませんが、注意が必要なものです。
にする必要がありますが、かってしか見Rubyのための保険です。参考までにいたC1取材ツールのためのRubyという single_cov.知らないので、そのままで試験-実行されます。