使用c#测试项目而不是c#类库项目进行单元测试的动机是什么?
感谢。
答案 0 :(得分:6)
默认情况下,测试项目会自动为您添加所有MSTest
引用。此外,还为您创建了一些默认示例,例如简单的示例测试。
使用类项目,您也可以从中构建测试项目,但您必须自己手动添加MSTest
引用。这不是一个重大问题,但测试项目可以节省您的时间和麻烦。
编辑:
正如评论中所指出的,两个项目类型之间的最大区别在于,通过类项目,您可以选择您喜欢的单元测试框架。
答案 1 :(得分:0)
我无法找到有关{3AC096D0-A1C2-E12C-1390-A8335801FDAB}确定的此测试项目子类型的过多信息但是,根据https://msdn.microsoft.com/en-us/library/bb166488.aspx项目子类型可以 包括自定义:
- saving additional data in the project file,
- adding or filtering items in the Add New Item dialog box,
- controlling how assemblies are debugged and deployed,
- and extending the project Property Pages dialog box.
确实右键单击上下文菜单中的测试项目 - >在"添加"子菜单,您可以看到测试项目"单元测试","有序测试","通用测试"。添加"单元测试"为MSTest生成测试类模板。
它还包含其他数据,如:
<TestProjectType>UnitTest</TestProjectType>
<IsCodedUITest>False</IsCodedUITest>
所以看来这个项目子类型更具体是MSTest。
因此,如果不使用MSTest(例如使用xUnit),我更喜欢类库。
附加论点可能是因为.Net Core项目调味(子类型)不是理想的做事方式,而且.Net Core测试模板是类库。请参阅讨论:https://social.msdn.microsoft.com/Forums/vstudio/en-US/061aaf74-bb13-4646-9d69-064f6f1b8ef6/net-core-project-subtypes
奖励:如果您不选择现有项目,xUnit.net.TestGenerator扩展会生成测试项目子类型(可能因为它只是VS生成工具的xUnit适配器)