是否有可能以某種方式初始化密封屬性從其他(自定義)屬性?自定義屬性來初始化其他密封屬性
原因很簡單。我正在寫一個數據驅動的單元測試項目與硒網格。我的目標是隻寫測試和使用數據源到控制目前測試瀏覽器。 (我想避免編寫k*n
測試,其中n
是測試和k
是支持的瀏覽器,其中指定所需WebDriver
每個測試。)
該解決方案對我的作品非常好,但它要求申報所有類似的方法:
[TestMethod, DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\BrowserSelector.csv", "BrowserSelector#csv", DataAccessMethod.Sequential), DeploymentItem("BrowserSelector.csv")]
public void TestMethod()
{
// implementation
}
正如您所看到的,DataSource
的參數非常長。我可以寫多行,這將提高可讀性,但它並沒有解決我的主要問題:我期待大量的試驗(易500+ - 它是一個大型的商業應用程序)和我最後要避免 unnecesarry和冗餘屬性定義。
我的想法是這樣的:
[TestMethod, MyDS, MyDep]
public void TestMethod()
{
// implementation
}
其中attribute MyDS
將填補自動在一個地方DataSource
的參數。我不能使用繼承,因爲DataSourceAttribute
是密封。
那麼,是否有可能避免使用自定義屬性來測試我的測試方法的冗餘屬性?
檢查文檔https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.datasourceattribute.aspx#Anchor_7 – Nkosi