我创建了一个通用类,如下所示,当我对其进行编码并在 Visual Studio 中测试程序时,它运行良好。但是,在自动构建中,运行了一个无法处理程序集的单元测试,尽管之前没有看到编译或运行时错误:
错误 18 处理程序集“....dll”期间发生错误:提供的泛型参数的数量不等于泛型类型定义的数量。参数名称:实例化...Test
单元测试没有使用泛型类。
我注释掉了类中的所有代码、构造函数、字段,然后使用 Visual Studio 自动实现接口,生成带有“throw new NotImplementedException()”的存根。
public class RequiredPropertiesProfile<TPropertyGroup, TProperty>
: IDictionary<bool, IDictionary<TPropertyGroup, ICollection<TProperty>>>
{
// auto implementations of IDictionary, with throw new NotImplementedException();
}
它再次编译,但编译单元测试再次失败,没有明显的原因。该测试引用了“Microsoft.VisualStudio.QualityTools.UnitTestFramework”。
该类主要是定义属性配置,需要设置或者不设置(bool)。它应该是通用的,具有字符串(用户友好,包括帮助类)、数据对象或数据库标识符(int 类型),以及将一个转换为另一个的附加方法。
我发现了几篇关于这个错误的文章,但没有一篇适合我的情况——尤其是首先编译和运行没有错误,然后偶然发现一个愚蠢的单元测试,它甚至没有使用泛型类。