0

在我们将项目升级到 .NET 4.0 后,我一直在尝试迁移到 FitSharp,但是我目前遇到了错误:

System.TypeLoadException: Could not load type 'fit.PrimitiveFixture' from assembly 'fit, Version=2.2.4498.25494, Culture=neutral, PublicKeyToken=null'.
  at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes)
  at System.Reflection.RuntimeAssembly.GetExportedTypes()
  at fitSharp.Machine.Engine.CurrentDomain.LoadAssembly(String assemblyPath)
  at fitSharp.Machine.Engine.ApplicationUnderTest.Assemblies.AddAssembly(String assemblyName)
  at fitSharp.Machine.Engine.ApplicationUnderTest.AddAssemblies(IEnumerable`1 assemblyNames)
  at fitnesse.fitserver.FitServer.ParseCommandLineArguments(IEnumerable`1 args)
  at fitnesse.fitserver.FitServer.Run(IList`1 CommandLineArguments)
  at fitnesse.fitserver.FitServer.Run(IList`1 commandLineArguments, Memory memory, ProgressReporter reporter)
  at fitSharp.Machine.Application.Shell.Run()
  at fitSharp.Machine.Application.Shell.Execute()
  at fitSharp.Machine.Application.Shell.Run(IList`1 commandLineArguments)

我使用 Fitnesse-standalone.jar 作为服务器,如果这有任何区别并且有 ofc。在fitnesse的根目录下定义了FitSharp runner,我们将fitsharp放在fitnesse的子目录中,所以路径是相对的。

!path ..\..\..\Output\Runtime\*.dll
!define COMMAND_PATTERN {%m -r fitnesse.fitserver.FitServer,fitSharp\fit.dll %p}
!define TEST_RUNNER {fitsharp\Runner.exe}

显然 fit.PrimitiveFixture 不存在,总的来说,我可以看到 fit.dll 与 FitNesse 它自己捆绑的那个相比已经缩小了很多。

我无法确定它为什么会尝试加载它,它源于哪里......我已经查看了是否有任何可能暗示任何事情的重大变化,但这并没有真正给我一个想法,显然我还更改了所有引用以适应,以便它指向新库而不是捆绑并成功编译(尽管也必须添加 fitharp.dll)...

我无法真正进入调试,因为它在那之前很久就失败了......

人们应该认为其他人也经历过同样的事情,但情况似乎并非如此,至少我的谷歌尝试并没有产生太多可用的结果。

所以这里是希望有人遇到同样的问题,但他们自己解决了这个问题,而不是在网上分享信息。可能对 FitNesse 和 FitSharp 有更深入了解的人?

4

1 回答 1

0

可能是您路径中的某个程序集有问题:......\Output\Runtime*.dll 尝试仅列出测试所需的单个程序集,看看这是否有助于缩小导致问题。

于 2012-12-22T05:55:32.040 回答