5

F# プロジェクトで Pex を使用しようとしてきましたが、いくつかの問題に直面しました。

  1. Visual Studio Pex アドインは、複雑なプロジェクトの調査ではなく、30 分間機能しました。

  2. その後、Visual Studio 2010 内から Pex Exploration を実行するたびに、!warning! [metadata] no explorations found after applying all filters; did you forget a [PexClass] or [PexMethod] attribute?エラー メッセージが表示されます。探索を行うときに Visual Studio によって実行されるコマンドをコピーして貼り付け、いくつかの属性 (sourceFilter など) を削除してコマンド コンソールから実行すると、生成されたテストがいくつか得られます。ビジュアルスタジオが無効なコマンドを生成する理由は何ですか?

  3. しばらくすると、Microsoft.Pex.Framework.dll が .Net 参照リストから消え、ファイル パスを使用して手動で参照するか、参照することさえできなくなり、Pex をアンインストール/再インストールする必要があります。( A reference to C:\Program Files (x86)\Microsoft Moles\PublicAssemblie\Microsoft.Pex.Framework.dll could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component.)

C# プロジェクトで作業している場合、これらの問題はすべて発生しません。

問題 1 2 3 は、アカデミック バージョンで発生しました。

MSDN サブスクライバーで利用可能なバージョンを使用すると、Visual Studio (Visual Studio 2010 Ultimate NO SP1) 内で動作するようになりませんでした。ただし、コマンドプロンプトからは機能しました。このバージョンでは問題 3 に直面しませんでした。

Visual Studio 内で Pex を F# で動作させることができた人はいますか? はいの場合、どうやってそれをしたか教えていただけますか?どのバージョン (VS と Pex) を使用していますか?

4

1 に答える 1

1

F# で Pex を実行することに成功しました。私が使用したバージョンは、私のダウンロード フォルダーと思われる場合、Microsoft Pex and Moles 0.94.51006.1 Release for (x86) のアカデミック バージョンでした。インストール ファイルの名前は pex.academic.x86.msi です。

そのバージョンがあなたのバージョンよりも古いかどうかはわかりません。

試してみた結果、Pex と F# はあまり良い組み合わせではなかったという印象を受けました。Pex は、null 入力を使用してテスト ケースを作成することを主張していました。F# で null 値を生成することはそれほど一般的ではないため、通常、これは私が関心を持っているシナリオではありません。それらを排除するために多くの仮定を追加すると、Pex でテスト ケースを生成できなくなりました。確かに、私がテストしていた関数は複雑すぎました。私はまだ Pex の背後にあるアイデアが好きで、より小さくて簡単なコードでもう一度試すかもしれません。

VS 2010 内で Pex とその GUI を使用すると、比較的問題なく動作しましたが、不満がないわけではありません。

于 2011-10-06T20:01:41.857 に答える