C# · 12月 24, 2021

c#属性参数必须是常量表达式

为什么我下面的String数组给出了一个错误,不是它们都是字符串???
“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式” [Test][TestCase(new string[]{“01″,”02″,”03″,”04″,”05″,”06″,”07″,”08″,”09″,”10″},TestName=”Checking10WOs”)]public void Test(String[] recordNumber){ //something..}解决方法 这不能回答问题的标题,但它解决了您的具体问题.

您可能希望使用TestCaseSource,它允许您将多个测试用例场景传递到相同的测试机制,并且您可以根据需要使用复杂的结构.

[Test] [TestCaseSource(“TestCaseSourceData”)] public void Test(String[] recordNumber,string testName) { //something.. } public IEnumerable<TestCaseData> TestCaseSourceData() { yield return new TestCaseData(new string[] {“01″,”Checking10WOs”); }

它会发现第一个参数是recordNumber,第二个参数是testName

看下面的截图.

希望这能为您节省一些时间.