NUnit公共测试类报错:The test case source could not be found
异常含义及排查方向
这个System.Exception : The test case source could not be found异常的意思很直接:NUnit测试框架找不到你通过[TestCaseSource(nameof(AllGallerySettings))]指定的测试用例数据源AllGallerySettings。
结合你用抽象基类+子类复用测试逻辑的场景,大概率是下面几个原因导致的:
AllGallerySettings不是静态成员:NUnit在执行子类测试时,会优先在子类中查找数据源成员。如果基类里的AllGallerySettings是实例方法/属性,子类继承后无法被NUnit直接识别,必须把它改成静态方法或静态属性。- 访问权限不够:
AllGallerySettings的访问修饰符如果是private,NUnit没有权限访问它,得改成public或者internal(如果测试项目和目标项目在同一个程序集里)。 - 数据源返回类型不符合要求:
AllGallerySettings必须返回IEnumerable类型的集合(比如IEnumerable<TestCaseData>、IEnumerable<object[]>这类),如果返回类型不对,NUnit也会判定为找不到有效的数据源。 - NUnit版本兼容问题:部分旧版本的NUnit对继承自抽象基类的
TestCaseSource支持不完善,你可以尝试升级到较新版本的NUnit框架。
内容的提问来源于stack exchange,提问作者AlexB
相关产品推荐
相关产品推荐

