完整事件的顺序是什么MSTest在 Visual Studio 中用 C# 运行单元测试(Ctrl+R、A)?
到目前为止我的想法是:
- 1 - 跑步
[AssemblyInitialize]
- 2 - 随机运行
[ClassInitialize]
- 3 - 运行班级
[TestInitialize]
- 4 - 随机运行
[TestMethod]
从那个班级
- 5 - 运行班级
[TestCleanup]
- 对类中的每个 TestMethod 重复 3 到 5
- 对每个测试类重复 2 到 5
- 6 - 运行所有课程
[ClassCleanup]
methods
- 7 - 跑步
[AssemblyCleanup]
但我认为VS可能会一次初始化多个类,然后随机运行TestMethods。测试是否应该在同类或整个测试项目甚至整个解决方案中保持自主?了解事件的确切顺序应该可以回答这些问题。
UPDATE:
我做了一些测试,发现这确实是事件发生的顺序,除了 #3 到 5 之外,其中任何类的任何测试都可以运行。 Visual Studio 似乎一次顺序运行一个测试。然而,由于接受的答案中解释的原因,不应依赖这一点。
你是对的。这确实是代码运行的顺序。但是,由于测试应该完全独立,因此不能保证它们将按顺序运行并且它们将在单个线程上运行。该框架可以同时运行多个测试。
如果您也需要,您可以通过使用测试用例强制执行特定的测试顺序,但这被认为是不好的做法,因为测试用例应该用于将测试重新组合在一起(标记它们)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)