Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# net中的单元和集成测试组织_C#_.net_Unit Testing - Fatal编程技术网

C# net中的单元和集成测试组织

C# net中的单元和集成测试组织,c#,.net,unit-testing,C#,.net,Unit Testing,在解决方案中组织单元测试和集成测试的最佳实践是什么 我倾向于每个实际项目有两个测试项目,命名为ProjectName.Tests.Unit和ProjectName.Tests.Integration,但是每个代码项目似乎有太多的测试项目。 然而,另一种选择是将所有测试放在两个测试项目中,这似乎更糟 有人能评论一下您(将)如何在解决方案中构建单元测试和集成测试吗?我过去的工作是为解决方案中的每个代码项目创建一个文件夹。 在此文件夹中,我创建了三个项目: 1.代码项目 2.集成测试 3.单元测试与围

在解决方案中组织单元测试和集成测试的最佳实践是什么

我倾向于每个实际项目有两个测试项目,命名为
ProjectName.Tests.Unit
ProjectName.Tests.Integration
,但是每个代码项目似乎有太多的测试项目。 然而,另一种选择是将所有测试放在两个测试项目中,这似乎更糟


有人能评论一下您(将)如何在解决方案中构建单元测试和集成测试吗?

我过去的工作是为解决方案中的每个代码项目创建一个文件夹。 在此文件夹中,我创建了三个项目: 1.代码项目 2.集成测试
3.单元测试

与围绕最佳实践的许多问题一样,答案实际上是它取决于

如果你有很多项目,每个项目都有一些不太有用的类,那么为你的每个项目都有一个集成测试项目和一个单元测试项目似乎有些过分了

如果您正在编写一个分解为离散区域的大型基础设施,它位于服务之下,那么为每个服务制定一个集成测试项目可能是有意义的,以便包含功能并有效地组织测试

如果您的每个项目都代表独立的功能,这些功能可以独立地进行合理的集成测试,那么为您的每个项目创建一个集成项目可能是有意义的

这确实取决于你的情况以及你为什么要分离项目


一个你应该考虑的选择,如果你还没有这么做的话,就是使用TestStuts/Trimes来区分你的测试。这允许您将整个测试类/装置或单个方法标记为特定的测试类别(例如db集成),然后在构建过程中打开/关闭这些测试。

通常我建议为每个项目创建一个测试项目。集成测试项目通常不是每个项目创建的。您可以创建单个集成测试项目,或者为您正在进行集成测试的每个功能创建一个集成测试。这就是我正在做的,非常有用。