C# 扩展Microsoft.VisualStudio.TestTools.DataSource.XML
我正在使用C#VS2008中的Xml数据源编写数据驱动的单元测试 属性看起来像这样,一切都运行得非常好C# 扩展Microsoft.VisualStudio.TestTools.DataSource.XML,c#,xml,datasource,data-driven-tests,C#,Xml,Datasource,Data Driven Tests,我正在使用C#VS2008中的Xml数据源编写数据驱动的单元测试 属性看起来像这样,一切都运行得非常好 [DeploymentItem("HtmlSchemaUrls.xml")] [DataSource("DataSource", "Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\HtmlSchemaUrls.xml", Microsoft.VisualStudio.TestTools.We
[DeploymentItem("HtmlSchemaUrls.xml")]
[DataSource("DataSource", "Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\HtmlSchemaUrls.xml", Microsoft.VisualStudio.TestTools.WebTesting.DataBindingAccessMethod.Sequential, "URL")]
[DataBinding("DataSource", "URL", "URL_Text", "DataSource.URL.URL_Text")]
[TestMethod]
我想扩展Microsoft.VisualStudio.TestTools.DataSource.XML数据源的功能,最好通过App.config进行配置。例如,布尔值为true时,我遍历Xml文件中的所有行;为false时,我只遍历一行
我不想在测试用例本身中执行此检查-我有1000个符合此要求的测试用例
任何关于如何实现这一点的指导都将不胜感激。使用AssemblyInitialize从某个测试集存储库复制XML测试集。
1-这样,您就不需要[DeploymentItem(“HtmlSchemaUrls.xml”)]
2-不只是复制它,而是创建一个包含需要测试的记录的新文件(使用参数化xsl?)
3-该操作的所有参数都可以存储在app.config中
缩短的示例(使用简单副本准备数据驱动的测试用例env:
[AssemblyInitialize()]
public static void AssemblyInit(TestContext context)
{
...
string strRelocatedTestCaseFile =
Path.Combine(TheToolBox.ShortPath(AppDomain.CurrentDomain.BaseDirectory),
"TestCase.xml");
if(!string.IsNullOrEmpty(strTestCaseFile))
{
string strMessage = "Copying TestCase input file: '" +
strTestCaseFile + "' to '" + strRelocatedTestCaseFile + "'";
Console.WriteLine(strMessage);
File.Copy(strTestCaseFile, strRelocatedTestCaseFile, true);
}
}
如果有1000个测试击中了文件系统,那么似乎有些问题(老实说,此时您正在进行集成测试,而不是单元测试)您可能需要考虑做一些嘲弄或敲碎,以隔离那些只需要一行XML的情况下正在测试的代码。这是一个好主意,但是由于代码“>数据源< /COD>在汇编初始化之前甚至会运行,所以绑定了测试。数据源文件的版本。