C#单元测试警告而不是失败

dna*_*oli 6 c# unit-testing

当使用Assert(...)时,如果逻辑测试失败,则单元测试将中止,并且不会运行其余的单元测试.有没有办法让逻辑测试失败,但只是提供警告或其他东西,仍然运行其余的单元测试?

上下文的一个例子是我有一个测试,创建一些学生,教师和类,创建关系,然后将它们放入数据库.然后在此数据库上运行一些SSIS包,这些包获取现有数据并将其转换为另一个数据库中的另一个数据库模式.然后,测试需要检查新数据库是否存在某些事情,例如正确的行数,操作等.

显然,其他测试是删除和修改,但它们都遵循相同的结构 - 在源数据库中创建数据,运行SSIS包,验证目标数据库中的数据.

Ner*_*ury 10

听起来你试图在一次测试中测试太多东西.

如果不满足前提条件,那么大概测试的其余部分也不会通过.一旦我知道事情不符合我的预期,我宁愿结束测试.

单元测试的概念是Red fail,Green pass.我知道MSTest也允许黄色,但它不会做你想要的.你可以做一个Assert.Inconclusive来获得黄灯.当我在代码库上工作时,我已经使用过这个代码库,这个代码库有许多依赖于特定数据库数据的集成测试.我没有让测试失败,而是开始让结果无结果.代码可能工作正常,但数据丢失了.并且没有理由相信数据总是存在(他们不是IMO的好测试).