如何将同一项目单元测试拆分为单独的程序集?

时间:2015-02-06 18:22:56

标签: c# visual-studio resharper teamcity

我有一些测试项目,其中一个有许多单元测试,都与进行某些计算非常相关。运行所有单元测试需要很长时间。所以,我正在寻找一种方法,可以轻松地将测试分成夜间单元测试和所有其他单元测试。如何方便地指定哪些测试夹具和测试方法每晚?换句话说,是否有办法将测试从同一个项目中拆分为单独的程序集

到目前为止我的想法和尝试:

  • 只需将夜间测试手动分离到他们自己的项目中,并且每晚只运行一个新项目。 这意味着,只要我想在夜间或定期运行测试夹具,就可以在项目中移动文件,即不可取。
  • 提出一个构建脚本,将编译时的这些测试分成单独的项目。然后我最终得到了单独的组件。这似乎太复杂了,但也许这是唯一的选择。

我希望能够使用class属性来指定每晚运行哪些测试,例如:

[TestClass, Nightly]
public class MyTestClass { }

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以根据需要为同一解决方案提供尽可能多的单元测试项目。

如果您想使用单独的项目(即您的构建系统仅设置为从单独的项目运行测试)我将从旧项目中获得新项目共享测试 - 创建新项目并添加文件从旧的“链接”(添加文件对话框的“打开”按钮上有小选项)。

或者,您可以向测试添加属性(例如TestCategoryAttribute)并让测试运动员尊重这些属性。