我现在在我的单元测试套件中看到了一些奇怪的东西。
我在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上正常运行。
我不知所措。我无法弄清楚为什么它无法解决这些汇编引用。
答案 0 :(得分:1)
这里发生的事情是我有两个测试项目。一个用于集成测试,一个用于单元测试。显然,单元测试项目还实例化了一个测试浏览器对象。我不知道有人使用过浏览器对象,并且基本上将集成测试放入单元测试项目中。
单元测试项目在集成测试之前运行测试。由于单元测试项目没有引用FluentValidation DLL,因此TinyIOC容器没有获取验证类。单元测试项目没有调用任何BindAndValidation路径,所以它不是一个问题......但是一旦集成测试运行就成了问题。
所以我看到的不是实际问题,而是症状。