1

我正在使用 SliM 跑步者对我们的 .Net 4.0 项目进行 FitNesse 测试。在我们添加企业库记录器之前,一切都很顺利。我们正在从配置中为记录器配置 Unity 容器。加载配置时,测试失败,抱怨它无法加载 EntLib dll。即使添加了套件的类路径条目以包含正在构建项目的 Microsoft.Practices.EnterpriseLibrary.Logging.dll 和 Microsoft.Practices.EnterpriseLibrary.Common.dll,它仍然会失败。但是,如果将它们添加到 Runner.exe 所在的同一目录中,它会找到它们。

除了记录器使用自定义侦听器类型之外,这还可以,几乎不可取,但已足够,该类型已回到被测项目中。该自定义类型又依赖于我们自己的库和扩展。Fitnesse 抱怨它无法找到带有自定义侦听器的 dll 及其依赖项,除非它们都与 Runner.exe 位于同一目录中。但是,如果我只是删除对 Enterprise Library 的依赖,测试运行程序会在构建目录中找到所有程序集。

4

1 回答 1

0

我遇到了一些库,它们坚持在应用程序可执行文件所在的同一目录中查找 DLL,在本例中为 runner.exe。即使显式加载了 dll,它仍然无法识别它们。我还没有尝试过 Unity 和 Enterprise Library 的组合,但这可能是一个类似的问题。

将 runner.exe 复制到构建目录并从那里运行可能是一种解决方法。

您也可以尝试 AppDomain 设置:请参阅http://fitsharp.github.com/FitSharp/SuiteConfigurationFile.html中的 AppDomainSetup

于 2012-03-20T20:55:04.787 回答