ConfigurableBootstrapper

ConfigurableBootstrapper

我喜欢Nancy.Testing,这是测试我的应用程序的绝佳方法。但是,我发现它相当慢。我的测试设备之一使用浏览器对象进行了26次测试,大约需要1毫秒20秒。

我在测试夹具设置中创建了一个ConfigurableBootstrapper和Browser对象,并针对每个请求(每个测试夹具)重用了它们。我试过只加载一个模块而不是全部可发现模块,但这没有任何区别。

我的存储库接口确实有很多Mocks,这些Mocks已加载到ConfigurableBootstrapper中,肯定一旦加载,就不会影响速度吗?另外,大多数测试都使用css选择器,这是不是很慢?

简而言之,环境:
测试框架:Nunit
模拟框架:Moq
引导程序:ConfigutableBootstrapper
南希版本:0.23
测试赛跑者:Resharper / Teamcity

有什么要做的事情来加快测试速度吗?

最佳答案

得到了答案。问题是正在加载的依赖项数量。

我在ConfigurableBootstrapper中有以下几行

with.AllDiscoveredModules();
with.EnableAutoRegistration();


这会将整个Universe加载到测试实例中。

我删除了这些行,并手动添加了几乎逐个测试所需的依赖项。我还对应用程序进行了一些重构,以减少为满足每个请求而注入的依赖项数量。例如。很有可能,如果您正在编辑客户记录,则不需要产品存储库,因此我将几个类拆分为更集中的对象(无论如何这都是代码的味道)

测试时间从8分钟减少到1.5分钟

可以说,您可以走得更远:

with.DisableAutoRegistrations();

08-26 07:43