C# 在Visual Studio 2013中用于数据驱动CUIT的CSV文件中发布外来字符

C# 在Visual Studio 2013中用于数据驱动CUIT的CSV文件中发布外来字符,c#,csv,visual-studio-2013,coded-ui-tests,data-driven-tests,C#,Csv,Visual Studio 2013,Coded Ui Tests,Data Driven Tests,我正在Visual Studio 2013中制作CUIT,使用CSV文件进行数据驱动 CSV文件包含以下内容: Materiale, MaterialeTykkelse, Højde, Bredde, Dybde, KasseBæreevne, Diameter, Længde, RørBæreevne Jern,15,10,20,10,"1940970,9",25,25,"12039935,17" PVC (Plast),15,10,20,10,"1989662,4",25,25,"12231

我正在Visual Studio 2013中制作CUIT,使用CSV文件进行数据驱动

CSV文件包含以下内容:

Materiale, MaterialeTykkelse, Højde, Bredde, Dybde, KasseBæreevne, Diameter, Længde, RørBæreevne
Jern,15,10,20,10,"1940970,9",25,25,"12039935,17"
PVC (Plast),15,10,20,10,"1989662,4",25,25,"12231232,42"
Glas,15,10,20,10,"1981272,5",25,25,"12198270,44"
Træ,15,10,20,10,"100,2",25,25,"500,5"
具有CSV数据源绑定的示例TestMethod

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod]
    public void TestMethod1()
    {
        // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
        ApplicationUnderTest.Launch(@"PathToExe", @"PathToExe");
        this.UIMap.SelectMaterialParams.UIMaterialThickness = TestContext.DataRow[0].ToString();
        this.UIMap.SelectMaterial();
        this.UIMap.AssertResultExpectedValues.UITxtBoxResultatRoerEditText = TestContext.DataRow[8].ToString();
        this.UIMap.AssertResult();
    }
TestMethod的前3次迭代没有问题,但一旦它到达第四次迭代,其中包含丹麦字母“æ”,它肯定无法正确解析它,因为它无法在名为“Træ”的组合框中选择项

我尝试将它硬编码为“Træ”,然后它工作得很好,但它有点违背了数据驱动的观点

CSV文件另存为Unicode(不带签名的UTF-8)-代码页65001。 我试过使用和不使用签名UTF8,没有任何效果

我在网上找到的唯一可能的解决方案是手动实现解码器,以处理外来字母。但我真的不相信这是最好的方法

提前谢谢


//Ronin

您是否使用调试器运行了测试,并检查了数据源和组合框中的值?提示:将失败行移动到CSV中的第一个数据行。提示:[TestMethod]代码中的上下文菜单包含“run test”和“debug test”。好的,我会在星期一再次访问项目时尝试。谢谢你的建议:)