运行unittest时,我收到以下异常:
测试方法抛出异常: System.MissingMethodException:方法 找不到:'System.String DataUtilities.HelperMethods.Serialize(!! 0)” ..
这只在运行unittest时发生,而不是在调试时发生。当我调试它时,不会发生错误。
被称为方法的签名:
public static string Serialize<T>(T value)
该方法位于引用的dll中。
我注意到以下内容:在引用的dll中,有一个方法将调用包装到Serialize(T值)方法。
它的代码是:
public static string SerializeList(List<object> list)
{
TraceClass.Write("something",list);
string x = HelperClass.Serialize<List<object>>(list);
TraceClass.Write(x);
return x;
}
如果我使用这个“间接”调用HelperClass.Serialize它可以正常工作。在调试和正常运行模式下。
我做错了什么?
答案 0 :(得分:1)
我会检查以确保在运行单元测试时没有从其他位置引用dll。你很可能有一个旧的dll文件坐在测试运行器找到的某个地方,这就是你得到这个错误的原因。
答案 1 :(得分:0)
确定。老实说,我现在还不知道是什么让它变得怪异,但它现在正在运行。
我删除了所有直接引用项目的所有bin和object文件夹。用于创建测试所需的文件夹结构的所有中间文件夹。 所有旧的Testresult文件夹。
然后重建所有。
现在可行。
之前,我已经对所有关注的程序集做过了。显然这还不够。