47

単体テストの生成などはありますか?もしそうなら...

...うまくいきますか?

... .NETで利用できる自動生成ソリューションは何ですか?

...このようなテクノロジーを使用した例はありますか?

...これは特定の種類のアプリケーションにのみ有効ですか、それとも手動で記述されたすべての単体テストを置き換えるために使用できますか?

4

11 に答える 11

40

Pexを見てください。そのMicrosoftResearchプロジェクト。ウェブサイトから:

Pexは、動的シンボリック実行に基づく自動探索テストを通じて、手書きのパラメーター化されたユニットテストからユニットテストを生成します。

2019年の更新:

コメントで述べたように、Pexは現在IntelliTestと呼ばれ、Visual StudioEnterpriseEditionの機能です。MSTest、MSTest V2、NUnit、およびxUnit形式でのテストの発行をサポートし、他の単体テストフレームワークで使用できるように拡張可能です。

ただし、次の注意事項に注意してください。

  • .NET Frameworkを対象とするC#コードのみをサポートします。
  • x64構成をサポートしていません。
  • Visual StudioEnterpriseEditionでのみ使用可能
于 2008-09-26T23:31:12.240 に答える
23

TDDに関する限り、ユニットテストの生成には意味がないと思います。

ユニットテストを行うのは、(開発者としての)設計と仕様に関して順調に進んでいることを確認するためだけです。テストの生成を自動的に開始すると、その目的は失われます。確かにそれはおそらく100%のコードカバレッジを意味しますが、そのカバレッジは無意味で空です。

自動化された単体テストは、戦略がテストアフターであることも意味します。これは、TDDのテストビフォアテネットとは逆です。繰り返しますが、TDDはテストに関するものではありません。

そうは言っても、MSTestには自動単体テスト生成ツールがあると思います。VS2005で使用できました。

于 2008-09-26T23:32:06.887 に答える
20

2017 年に更新:

Unit Test Boilerplate Generatorは VS 2015-2017 で動作し、メンテナンスされています。宣伝どおりに機能するようです。

于 2017-03-31T16:15:57.847 に答える
2

ジョンに同意します。自動ファズテストなどの特定の種類のテストは、自動生成の恩恵を確実に受けます。単体テストフレームワークの機能を使用してこれを達成することはできますが、これは、良好な単体テストカバレッジに関連する目標を達成しません。

于 2008-09-26T23:42:34.210 に答える
2

Parasoft .TESTには、テスト生成の機能があります。テストの説明とアサーションの評価に NUnit フレームワークを使用します。

シナリオの自動生成 (入力の構築とテスト済みメソッドの呼び出し) と、現在のコード ベースの動作に基づくアサーションの作成により、回帰テスト スイートを準備することができます。後で、テスト対象のコード ベースが進化した後、アサーションは回帰を示すか、簡単に再記録できます。

于 2009-05-22T15:23:52.840 に答える
0

NStubを使用して、クラスのテストをスタブアウトしました。それはかなりうまく機能します。

于 2008-09-26T23:39:54.653 に答える
0

ツールを使用してテスト ケースを生成しました。高レベルのエンドユーザー指向のテストにはうまく機能すると思います。純粋な単体テストよりも、ユーザー受け入れテストの一部です。

この受け入れテストには単体テスト ツールを使用します。それはうまくいきます。

テスト ケースを作成するためのツール を参照してください。

于 2008-09-28T00:16:26.913 に答える
0

JUnit テスト クラスを自動的に生成する AgitarOne (www.agitar.com) という商用製品があります。
私はそれを使用したことがないので、それがどれほど有用であるかについてコメントすることはできませんが、現時点で Java プロジェクトを行っているなら、私はそれを見ているでしょう.

私は.netに相当するものを知りません(Agitarは.netバージョンを発表しましたが、私の知る限り、それは実現しませんでした)。

于 2008-09-30T11:45:33.573 に答える
-3

このスレッドが古いことは知っていますが、すべての開発者のために、 nunit という優れたライブラリがあります。

https://marketplace.visualstudio.com/items?itemName=NUnitDevelopers.TestGeneratorNUnitextension

編集: XUNIT (マイクロソフトがサポート) を使用してください: https://github.com/xunit/xunit

自動生成されたテスト: https://marketplace.visualstudio.com/items?itemName=YowkoTsai.xUnitnetTestGenerator

良い開発者

于 2014-12-30T13:53:46.840 に答える
-6

Seleniumは、Web ページ上のユーザー コマンドから単体テストを生成します。

于 2008-09-30T11:47:49.013 に答える