在NancyFx中运行测试Fluentvalidation的单元测试时的奇怪行为

时间:2014-12-05 00:07:33

标签: c# unit-testing nancy fluentvalidation

我现在在我的单元测试套件中看到了一些奇怪的东西。

我在NancyFX中创建了一个REST API。我最近开始使用FluentValidation实现一种新的验证方式。

我的测试套件目前有大约1000个测试,其中我现在有大约10个测试用于第一次Fluent验证。这是它变得奇怪的地方。当我写这些测试时一切都很好。但是,只要我运行整个测试套件,所有Fluent Validation测试都会失败。

当我看到它告诉我的错误时:

"No model validator factory could be located. Please ensure that you have an appropriate validation package installed, such as one of the Nancy.Validation packages."

但程序集是从我的测试库中引用的,当我自己运行测试时,它们工作正常并且是绿色的。

我使用Resharper测试跑步者。使用BindAndValidate调用验证器,我在南希测试浏览器中调用端点。

下一个奇怪的行为是这些测试在Team City上正常运行。

我不知所措。我无法弄清楚为什么它无法解决这些汇编引用。

1 个答案:

答案 0 :(得分:1)

这里发生的事情是我有两个测试项目。一个用于集成测试,一个用于单元测试。显然,单元测试项目还实例化了一个测试浏览器对象。我不知道有人使用过浏览器对象,并且基本上将集成测试放入单元测试项目中。

单元测试项目在集成测试之前运行测试。由于单元测试项目没有引用FluentValidation DLL,因此TinyIOC容器没有获取验证类。单元测试项目没有调用任何BindAndValidation路径,所以它不是一个问题......但是一旦集成测试运行就成了问题。

所以我看到的不是实际问题,而是症状。