0

我有一个在负载测试中使用单元测试的紧迫问题。

运行每个测试方法后如何保存单元测试类的全局变量?例如,我在单元测试类中有一个全局变量,TestMethod1修改了这个变量,我希望TestMethod2在运行后(由负载测试的虚拟用户)调用时可以使用这个变量(及其修改后的值)测试方法 1。

我的负载测试的设置:测试混合模型基于顺序,负载模式是恒定的(5 个用户),运行设置:使用指定的迭代(迭代 = 5 * 方法数)。

我使用 VS2012 终极版。

你有什么想法吗?

提前致谢!

龙边

4

2 回答 2

1

使用全局变量让单元测试相互交互并不是一个好习惯。每个单元测试都应该以原子方式运行,并测试特定的行为。

如果您需要共享某种设置行为,我会为此使用 SetUp 属性。

[TestInitialize]
public void Setup()
{
    // initialize whatever common functionality for your tests
}

您不想让测试用例相互依赖,因为根据测试运行器设置(例如并行),测试的顺序可能会有所不同。

如果您有非常测试特定的设置行为,我会为该特定测试创建一个专用的测试类。

于 2013-02-20T19:34:21.193 回答
0

您可以考虑使用 BDD 工具,例如 Specflow 或 Storevil。这些可以设置测试“场景”,您可以使用它来协调现有的单元测试,同时仍然让它们可以单独运行。

对于上下文共享,这两个工具都支持整个场景的数据存储,测试可以将数据推送到或从中获取数据。这将需要自己修改测试,它们将不再是真正的单元测试,但听起来单元测试并不是你的目标。

于 2013-02-20T19:42:13.387 回答