詳細については、IE、Mozilla、およびChromeの3つのフレームワーク(UI刺激用のSeleniumを使用)に重複してテストする一連のテストがあります。第1の解決策は、テストを別個のテストクラスで複製することであった。すなわち、各テストクラスは、コンストラクタ内で異なるフレームワークを有する同じ20のテストケースを有していた。第2の解決策は、入力として、各フレームワークのタイプとパラメータ化入力(またはxUnitの理論)を使用することであった。複数のフレームワーク(インターネットブラウザ)で自動化された統合テストを重複することなくどのように使用できますか?
/// <summary>
/// The non-default constructor that initializes
/// necessary instances of objects that are being used
/// </summary>
public VerifyViewUsingChrome() {
_testBases = new Dictionary<FunctionalTestBase.DriverType, TestBase>();
_testBases.Add(FunctionalTestBase.DriverType.Chrome, new TestBase(FunctionalTestBase.DriverType.Chrome));
_testBases.Add(FunctionalTestBase.DriverType.IE, new TestBase(FunctionalTestBase.DriverType.IE));
_testBases.Add(FunctionalTestBase.DriverType.FireFox, new TestBase(FunctionalTestBase.DriverType.FireFox));
}
/// <summary>
/// Our simple country display test.
/// </summary>
[InlineData(FunctionalTestBase.DriverType.Chrome)]
[InlineData(FunctionalTestBase.DriverType.FireFox)]
[InlineData(FunctionalTestBase.DriverType.IE)]
[Theory]
public void TestADisplayedForACountry(FunctionalTestBase.DriverType testBase) {
_testBases[testBase].TestADisplayedForACountry();
}
この実装の問題は、すべての3つの実装は、いくつかを必要とする各試験のために実行しなければならないことですオーバーヘッド。理想的には、私たちはすべてのIEテストを実行し、その後Firefoxフレームワークを構築し、それらのテストを実行してからChromeを続行します。
テストフレームワークを使用することはできないかもしれませんが、私たちはビルドサーバーとの結びつきが便利なので、テストフォーマットを維持することが理想的です。
あなたはSeleniumを使用していますか? – trailmax
はい。それがUIを刺激する方法です。 –
これはおそらく質問またはタグに記載されているはずです。しかし、今は汗がない - あなたはあなたに合った解決策を見つけました。 – trailmax