gpt4 book ai didi

c# - 扩展 Microsoft.VisualStudio.TestTools.DataSource.XML

转载 作者:数据小太阳 更新时间:2023-10-29 01:59:15 26 4
gpt4 key购买 nike

我正在使用 C# VS2008 中的 Xml 数据源编写数据驱动的单元测试。

属性看起来像这样,一切都运行良好。

    [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 进行配置。例如,当我遍历 Xml 文件中的所有行时为 true 时为 bool,当为 false 时我仅遍历一个。

我不想在测试用例本身中执行此检查 - 我有 1000 个具有此要求的测试用例。

如有任何关于如何实现这一目标的指导,我们将不胜感激。

最佳答案

使用 AssemblyInitialize 从某个测试集存储库复制您的 XML 测试集。
1 - 这样,您就不需要 [DeploymentItem("HtmlSchemaUrls.xml")]
2 - 而不是仅仅复制它,而是创建一个包含您需要测试的记录的新文件(使用参数化 xsl?)
3 - 该操作的所有参数都可以存储在您的 app.config 中

简化示例(使用简单副本准备数据驱动的测试用例环境:

[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);
}
}

关于c# - 扩展 Microsoft.VisualStudio.TestTools.DataSource.XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1351005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com