【发布时间】:2016-04-06 22:10:18
【问题描述】:
我有几个延迟测试(基本上是单元测试)来测试特定的服务器 API,我必须准确地知道从请求到响应需要多少时间。我遇到的问题是,在调用测试之前,我必须进行一些数据初始化(对于每次测试运行,所以如果我进行运行 100 次的延迟测试,数据也必须初始化 100 次)这需要一些时间,但是我不想数它。
初始化数据有两种方式:[MethodInitialization]和[ClassInitialization]。
MethodInitialization - 在每次运行之前初始化数据,但当测试完成时,其持续时间 = 测试初始化时间 + 测试运行
ClassInitialization - 只初始化一次数据(这对我不起作用),但测试持续时间 = 测试运行
我知道秒表,但是使用起来会很痛苦,因为我也从 AppInsights 中获取数据,并希望尽可能地将其自动化,如果我在简单运行后可以得到清晰的结果,那就只是很棒。
有没有办法在每次测试运行之前初始化测试数据但不包括其持续时间?
UPD 1: 我还尝试创建自定义属性,因为可以在其构造函数中执行一些操作,但即使我运行测试 10 次,属性构造函数也只会调用一次。
【问题讨论】:
-
如果您的测试目的是断言您的 API 保持在某个延迟阈值内,我可以想到比秒表更好的机制来测量延迟,之后您可以做出您需要的断言.我在stackoverflow.com/questions/28334337/… 遇到的解决方案取决于在 MSTest/VSTest 中运行的测试。这是您用来运行测试的工具吗?
标签: c# performance visual-studio unit-testing