我使用 Fitnesse.NET 已经有一段时间了,现在正尝试升级到更新的 fitSharp 引擎。不过,我立即遇到了障碍。从一个新系统开始,我下载了最新的 Fitnesse.jar 并执行/安装它;然后我的所有测试页面都可以从我的浏览器中正常显示。
当我将 fitSharp 的配置添加到根页面时,就会出现问题。我尝试了设置 TEST_RUNNER 和 COMMAND_PATTERN 的各种组合;最终结果始终是,在执行任何测试时,fitnesse 服务器从未向我的浏览器返回结果。作为参考,这里是我的根内容,确认这些变量定义存在且正确,至少根据这个 fitSharp配置页面:
variable defined: TEST_RUNNER=fitSharp\RunnerW.exe
variable defined: COMMAND_PATTERN=%m -r fitnesse.fitserver.FitServer,fitSharp\fit.dll %p
我终于找到了一个故障排除说明,提到 RunnerW 提供了一些诊断信息,所以我切换到那个并收到此错误消息,表明这显然是由于 .NET 4 引起的问题:
无法加载文件或程序集 'file:///C:\fitnesse\fitSharp\fit.dll' 或其依赖项之一。不支持操作。(来自 HRESULT 的异常:0x80131515)文件名:'file:///c:\fitnesse\fitsharp\fit.dll' ---> System.NotSupportedException:尝试从网络位置加载程序集导致程序集在以前版本的 .NET Framework 中被沙盒化。此版本的 .NET Framework 默认情况下不启用 CAS 策略,因此这种加载可能很危险。如果此加载不打算对程序集进行沙箱处理,请启用 loadFromRemoteSources 开关。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=155569 。
引用的 MSDN 页面说我在我的配置文件中需要这个:
<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>
所以看起来我有三种可能性。有没有:
- 我可以在其中插入该配置部分的 app.config 或等效项?
- 一种阻止fitnesse认为我的本地文件位于远程路径上的方法?
- 一种为 .NET 框架启用 CAS 策略的方法?
建议将不胜感激!
2010.01.17 编辑:我在我的环境中使用 fit 协议而不是 slim 协议。