現在、Rcovを使用して、作業中の Rails プロジェクトの C0 コード カバレッジ分析を取得しています。
ただし、これらの結果は実質的に無意味です。rcov によると (C0 分析のみをカバーしているため) 100% のカバレッジがあり、これまでに存在する機能のテスト ケースの半分しか書いていません。
私は、C1 カバレッジを持つ Visual Studio 2008 チームのコード カバレッジからの有用な結果に慣れています。ruby に同様のカバレッジを提供するツールはありますか?
現在、Rcovを使用して、作業中の Rails プロジェクトの C0 コード カバレッジ分析を取得しています。
ただし、これらの結果は実質的に無意味です。rcov によると (C0 分析のみをカバーしているため) 100% のカバレッジがあり、これまでに存在する機能のテスト ケースの半分しか書いていません。
私は、C1 カバレッジを持つ Visual Studio 2008 チームのコード カバレッジからの有用な結果に慣れています。ruby に同様のカバレッジを提供するツールはありますか?
現時点では、Ruby 用の C1 カバレッジ ツールはありません。実際、RCov 以外のカバレッジ ツールはありません。
最近まで、このようなツールを作成するには、C で MRI インタープリターにパッチを適用するか、拡張する必要がありました。約 2 年前から、JRuby を Java で拡張することも可能になり、実際に先月から RCov の移植が行われました。 JRuby。ただし、これには RubyとC の知識と、それに関するかなり深い知識の両方が必要です。なぜなら、MRI の内部をいじるのは、気が弱い人向けではないからです。
しかし、コード カバレッジ ツールなどの動的分析ツールを Ruby 自体で作成できるのは Rubinius のみであり、Ruby コミュニティの大部分がツール作成にアクセスできるようになります。私の希望は、これがツール ベンダーの実質的な財政的支援と相まって (多くの主要な IDE ベンダーが、CodeGear (ex-Borland)、IntelliJ、NetBeans、Eclipse、SapphireSteel (Ruby in Steel) を含む Ruby IDE に取り組んでいるか、すでに導入していることです)。 Visual Studio 用) や Microsoft でさえ) は、2009 年に Ruby ツール スペースの急速な革新につながり、C1、C2 カバレッジ、NPath の複雑さ、よりきめ細かいプロファイリングなどを目にすることになるでしょう。
それまでは、Java ツールを使用するという考えしかありません。JRuby の担当者は、適切な魔法のメタデータを発行して、生成されたバイトコードを少なくとも Java ツールが通過できるようにしようとしています。ということで、JRuby で Java カバレッジ ツールを使用することは可能かもしれません。ただし、それが実際に機能するかどうか、また機能するはずかどうかはわかりません。
コード カバレッジ ツールについてはわかりませんが、ruby には heckle というミューテーション テスターがあります。
ミューテーション テストでは、テスト対象のコードを変更し、それらのミューテーションによって単体テストが失敗するかどうかを確認します。
残念ながら、最新の公式 gem (バージョン 1.4.1) にはいくつかのバグがあるため、開発ブランチのコードを使用して gem をビルドすることをお勧めします。インスタンスメソッドのみを変更できます。開発ブランチ バージョンの信頼性もわかりません。
テスト対象のコードがシステムを破壊する可能性がある場合 (ファイルの削除など)、ミューテーション テストは避ける必要があります。heckle に関する FAQ とrcovとheckle に関する FAQの質問を読みたいと思うかもしれません。