You need to enable JavaScript to run this app. MSTest 2.0 DataTestMethod使用DynamicData时参数顺序调换问题
优惠活动
大模型
产品
解决方案
定价
更多

MSTest 2.0 DataTestMethod使用DynamicData时参数顺序调换问题

问题原因

这是MSTest V2低于2.2.4版本的已知Bug,并非你遗漏配置。该问题出现在框架内部处理无类型object[]格式的DynamicData数据源时,值类型参数的映射逻辑异常,会出现参数顺序倒排的问题。

解决方案

  • 优先升级NuGet依赖包:将MSTest.TestFramework和MSTest.TestAdapter两个包升级到2.2.4及以上稳定版本,官方已在后续版本修复该问题。
  • 若暂时无法升级版本,可改用强类型包装参数规避映射错误,示例修改如下:
[TestClass]
public class SampleTest
{
    public TestContext TestContext { get; set; }
    
    // 改用匿名类包装参数,避免顺序映射错误
    private static IEnumerable<object[]> ReusableTestData =>
        new List<object[]> {
            new object[] { new { Param1 = 1, Param2 = 2, Param3 = 3 } },
            new object[] { new { Param1 = 4, Param2 = 5, Param3 = 6 } }
        };
    
    [DataTestMethod]
    [DynamicData(nameof(ReusableTestData))]
    public void Test1(dynamic testData)
    {
        TestContext.WriteLine($"{testData.Param1} {testData.Param2} {testData.Param3}");
    }
}
  • 也可改用ITuple强类型传参,和上述方案逻辑一致,本质是绕过框架对同类型值参数的自动排序逻辑。

内容的提问来源于stack exchange,提问作者Martin Ortuno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 12:45:03