データ駆動型テストの自動化に関するアドバイスが必要です。
MVCを使用して開発されたWebアプリケーション用にC#annNunitsを使用してテスト自動化を行っています。これにはSeleniumWebドライバーを使用しています。
データ駆動型テストの一部として、入力テストデータに使用するのに適しているのは、xmlファイルまたはsqlサーバーデータベースです。
dbを使用している場合は、db接続用にORM(NHibernate)を使用することをお勧めします。
ありがとう
データ駆動型テストの自動化に関するアドバイスが必要です。
MVCを使用して開発されたWebアプリケーション用にC#annNunitsを使用してテスト自動化を行っています。これにはSeleniumWebドライバーを使用しています。
データ駆動型テストの一部として、入力テストデータに使用するのに適しているのは、xmlファイルまたはsqlサーバーデータベースです。
dbを使用している場合は、db接続用にORM(NHibernate)を使用することをお勧めします。
ありがとう
data-driven-test-in-nunit-with-csv
使い方
[Test, TestCaseSource("GetTestData")]
public void MyExample_Test(int data1, int data2, int expectedOutput)
{
var methodOutput = MethodUnderTest(data2, data1);
Assert.AreEqual(expectedOutput, methodOutput, string.Format("Method failed for data1: {0}, data2: {1}", data1, data2));
}
private IEnumerable<int[]> GetTestData()
{
while (data.ReadNext()) // Use your custom logic based on Stream to get new data (basically Implement IEnumerator on data class)
yield return new[] { data.Current };
}
その他のテストフレームワーク
MSTestXUnit
あなたの法案に合うものを見てください。
優れたORMがあり、それに慣れている場合は、それを使用してください。
XMLに慣れている場合は、それを実行してください。
それが問題になるとき、長い実行時間を考えてください。Seleniumで単体テストを作成しているのではなく、統合UIテストを作成しています。したがって、とにかく一般的に夜間に実行されるため、実行時間が長くなることが問題になることはめったにありません。
個人的には、ここではLINQ2SQLを使用しており、SQLサーバーDBにホップするデータはすべて正常に機能します。クエリがばかげていなければ、パフォーマンスへの影響はほとんどありません。
私の提案は、テストデータを単体テストフィクスチャ自体にバンドルすることです。各テストメソッドを設定すると、テストの初期状態(データ)が設定されます。分解すると(必要に応じて)クリーンアップされます。
外部データファイルを維持し、それを単体テストコードと一致させようとすると、問題が発生します。(YMMV-これは個人的な経験からの私のアドバイスです。)
Mockobjectsを使用してデータをシミュレートすることを検討し、次のリンクを試してください。
テストデータをExcelやデータベースではなく埋め込みjsonファイルに保存することを検討してください。
jsonに保存すると、次の利点があります。
これにより、埋め込まれたjsonファイルでテストデータを管理するための優れたサポートが提供されます