6

我们想对需要将数据发送到外部源然后验证数据已正确显示在其网站上的流程进行一些自动化集成测试。

然而,数据出现在网站上可能需要几个小时。

传统 NUnit 或 MSTest 的问题是测试将等待数小时等待结果。

我见过可以用来并行运行所有测试的PNUnit,但它对我来说似乎不是一个优雅的解决方案。如果有 1000 个测试怎么办?这不会在服务器上创建大量进程/线程吗?以及如何跟踪所有这些。

那么有人解决了这个问题吗?您是否在家开发了解决方案,或者是否有针对此的开源解决方案?

4

4 回答 4

2

这个问题可以通过分离测试数据插入和验证来轻松解决。只需将所有可用的测试数据加载到系统中,等待几个小时直到处理完成,然后执行验证测试。

于 2011-11-26T14:53:18.207 回答
1

似乎 PNUnit 将是一个很好的解决方案。如果您担心服务器上的“进程/线程太多”,只需限制 PNUnit 一次可以运行多少测试(例如,Max N);测试完成后,安排下一次测试。我不是在断言 PNUnit 知道如何做到这一点。您可能必须实施此自定义。

于 2011-11-26T17:56:21.067 回答
0

Martin,在我找到我的解决方案之前,对于单元测试,在我看来,您似乎只想测试您可以控制的内容。以上更像是我所说的回归测试。我假设“他们的”网站是别人的网站。请问如果您遵循界面/集成规则但屏幕上没有任何内容会发生什么,而您会或能做些什么可能是个问题?此外,当他们更改网站或算法时会发生什么?您最终将需要根据他们所做的糟糕的事情来编写代码。

也就是说,如上所述,您可以将加载测试和验证数据测试分开。我承认我对 PNunit 一无所知,但简单地向它抛出线程并不能解决每次往返测试的 3 小时延迟。

如果您需要同步运行,您可以在 ClassInitialize() 中加载所有数据,然后休眠,直到验证并运行实际测试。

如果是我,我只会有一个用于加载测试的测试项目,然后是一个用于在几个小时后验证结果的项目。除了确保在测试结果之前通过前提条件之外,让它同步似乎不会给您带来太多好处,这也可以通过其他方式处理。

于 2011-11-28T22:10:03.630 回答
0

NUnit-Discuss Google Group 现在正在讨论这个问题:http ://groups.google.com/group/nunit-discuss/browse_thread/thread/645ecaefb4f978fa?hl=en

我希望这有帮助 :)

于 2011-11-28T13:40:57.563 回答