C# 错误CLassInitialize具有错误的签名。该方法必须是静态的、公共的,并且不返回值

C# 错误CLassInitialize具有错误的签名。该方法必须是静态的、公共的,并且不返回值,c#,unit-testing,C#,Unit Testing,各位,我正在为我的Builder类编写一个单元测试,我有以下错误。 TestDB.BuilderTest.CustomerBuilderTest.CLassInitialize方法的签名错误。该方法必须是静态的,public不返回值,并且应采用TestContext类型的单个参数。此外,如果在方法中使用async await,则返回类型必须为Task 这是我的单元测试 [TestClass] public class CustomerBuilderTest {

各位,我正在为我的Builder类编写一个单元测试,我有以下错误。 TestDB.BuilderTest.CustomerBuilderTest.CLassInitialize方法的签名错误。该方法必须是静态的,public不返回值,并且应采用TestContext类型的单个参数。此外,如果在方法中使用async await,则返回类型必须为Task

这是我的单元测试

    [TestClass]
   public class CustomerBuilderTest
    {
        private static CustomerDeserializer _customerDeserializer;

        private static string path;

        [ClassInitialize]
        public static void CLassInitialize(TestContext context)
        {
            path = Path.Combine(Environment.CurrentDirectory, @"Folder\", "Customer.json");
        }

        [TestInitialize]
        public static void TestInitialize()
        {
            _customerDeserializer = new CustomerDeserializer();

        }

        [TestMethod]
        public void CusomerBuilder_MustReturnCustomers()
        {
            //Arange


            //Act
            var dtos = CustomerDeserializer.Deserialize(path);
            var dto = dtos.FirstOrDefault(e => e.Email == "hi@gmail.com");
            var customer = CustomerBuilder.CustomerBuild(dto);

            //Asset

            Assert.IsNotNull(dto);
            Assert.AreEqual(customer.FirstName,"tina");


        }

    }
}
这是我的建筑课

 public class CustomerBuilder
    {
        public static Customer CustomerBuild(DtoCustomer dto)
        {
            return new Customer()
            {
                FirstName = dto.FirstName,
                LastName = dto.LastName,
                Address = dto.Address,
                Email = dto.Email,
                Code = int.Parse(dto.Code),
                PhoneNumber = dto.Phone

            };
        }
    }

我检查了很多网站,但没有找到任何解决方案。你能帮我吗?

需要添加
ClassInitialize
属性,然后尝试使用不同于属性的方法名,因为这可能会混淆编译器。所以,试试看:

[ClassInitialize()]
public void CLassInitialization(TestContext context)
{
    path = Path.Combine(Environment.CurrentDirectory, @"Folder\", "Customer.json");
}
您可能还需要对
TestInitialize
应用相同的方法:

[TestInitialize]
public void TestInitialization()
{
    _customerDeserializer = new CustomerDeserializer();
}

需要添加
ClassInitialize
属性,然后尝试使方法名与属性不同,因为这可能会混淆编译器。所以,试试看:

[ClassInitialize()]
public void CLassInitialization(TestContext context)
{
    path = Path.Combine(Environment.CurrentDirectory, @"Folder\", "Customer.json");
}
您可能还需要对
TestInitialize
应用相同的方法:

[TestInitialize]
public void TestInitialization()
{
    _customerDeserializer = new CustomerDeserializer();
}

您的ClassInitialize方法缺少TestContext类型的单个参数。我也这样做了,但我仍然看到相同的错误您的ClassInitialize方法缺少TestContext类型的单个参数。我也这样做了,但我仍然看到相同的错误将方法签名更改为非静态,将方法签名更改为非静态的字段以及田里也一样