8

我使用 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>

所以看起来我有三种可能性。有没有:

  1. 我可以在其中插入该配置部分的 app.config 或等效项?
  2. 一种阻止fitnesse认为我的本地文件位于远程路径上的方法?
  3. 一种为 .NET 框架启用 CAS 策略的方法?

建议将不胜感激!

2010.01.17 编辑:我在我的环境中使用 fit 协议而不是 slim 协议。

4

3 回答 3

10

我知道这已经得到解答,但是恕我直言,有更好的解决方案。如果您“取消阻止”fit.dll(右键单击-> 属性-> 取消阻止),您将不会收到错误消息。由于下载的文件默认被锁定而发生。

于 2011-05-04T04:36:53.073 回答
3

我以前从未见过!为什么它认为 C: 是一个“危险”的网络位置?无论如何,可执行文件是 Runner.exe(或 RunnerW.exe),因此如果您使用上述设置创建 Runner.exe.config,它应该会选择它。

于 2011-01-06T03:56:10.433 回答
0

访问此页面

http://oweng.net/Visual-Studio-2010/Coded-UI-Fitnesse/integrating-coded-ui-and-fitnesse-fitsharp-slim-1.aspx

我遇到了类似的问题,但在访问 tjis 页面后得到了解决。

于 2011-03-31T10:44:03.103 回答