【问题标题】:Why does Gallio seem to need to be in a folder named GallioBundle-3.1.397.0/bin to run为什么 Gallio 似乎需要在名为 GallioBundle-3.1.397.0/bin 的文件夹中才能运行
【发布时间】:2010-06-23 17:16:57
【问题描述】:

我想在不安装 Gallio 的情况下使用 Icarus 和/或 Echo 运行 MbUnit 测试。我已将GallioBundle/bin 中的所有文件复制到我们项目文件夹中名为Third Party/MbUnit 的文件夹中。

当我双击Gallio.Icarus.exe 时,它不会加载或执行任何操作。

当我从命令行运行 gallio.echo.exe 时,我收到以下错误:

开始时间:下午 1:07 初始化运行时和加载插件。 停止时间:下午 1:07(总执行时间:0.313 秒) 错误:发生致命异常。 Gallio.Runtime.RuntimeException:无法解析服务类型“Gallio.Runner.Projects.ITestProjectManager”的组件,因为似乎没有为该服务类型注册和启用任何组件。 在 c:\RelEng\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runtime\Extensibility\RegistryServiceLocator.cs:line 202 中的 Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveNonDisabledDescriptor(键入 serviceType) 在 c:\RelEng\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runtime\Extensibility\RegistryServiceLocator.cs:line 161 中的 Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveImpl(键入 serviceType) 在 c:\RelEng\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runtime\Extensibility\RegistryServiceLocator.cs:line 52 中的 Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveTService 在 c:\RelEng\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runner\TestLauncher.cs:line 511 中的 Gallio.Runner.TestLauncher.RunWithRuntime() 在 c:\RelEng\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runner\TestLauncher.cs:line 474 中的 Gallio.Runner.TestLauncher.Run() 在 Gallio.Echo.EchoProgram.RunTests(ILogger 记录器) 在 Gallio.Echo.EchoProgram.RunImpl(String[] args) 在 Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Run(IRichConsole console, String[] args) 在 c:\RelEng\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runtime\ConsoleSupport\ConsoleProgram.cs:第 198 行

但是,如果我从 d/l 文件夹中解压缩的位置运行它:

GallioBundle-3.1.397.0/bin Icarus UI 出现。另外...当我在命令行运行它时,gallio.echo 没有给出任何错误。这对我来说毫无意义,但确实如此。

为什么 Gallio 不能从我的项目文件夹中运行?

【问题讨论】:

    标签: continuous-integration build-automation mbunit gallio


    【解决方案1】:

    它应该可以正常工作。 Gallio 真的不关心文件夹的名称。 上面的错误通常是在某些文件丢失时出现的。

    要尝试的另一件事可能是运行“Gallio.Utility.exe ResetInstallationId”

    【讨论】:

    • 我同意,它应该工作,但它没有。我也不明白。顺便说一句:我没有运行安装程序。我只是使用二进制包。
    • 我在使用二进制包时遇到了同样的问题。如果我将它解压到“Lib\Gallio”的目录结构中,Gallio.Echo.exe 会抛出上述错误。如果我把它放在“GallioBundle-3.3.458.0\bin”的目录中,它工作正常。然后它在我之后放置的任何地方都运行良好?超级奇怪。
    【解决方案2】:

    文件夹的名称无关紧要。

    第一次运行时,Gallio 会扫描文件夹中的插件并将它们写入%LocalAppData%\Gallio\Plugin Metadata Cache 中的 XML 文件。如果您在 Gallio 的损坏安装中运行可执行文件(例如,某些文件可能丢失),Gallio 会缓存此文件,即使您稍后修复文件,它仍然认为安装已损坏,因为它会看到其元数据的缓存视图.当您将 Gallio 移动到另一个文件夹时,它会为该文件夹重新创建缓存,然后一切又开始工作(假设文件实际上都在那里)。

    然后解决方法是简单地擦除 Plugin Metadata Cache 文件夹。

    【讨论】:

    • 你这么说,但我证实了。你认为我在看东西吗?
    • 我的意思是直接无关紧要,因为它没有硬编码某处来查找bin/ 文件夹。只是在一次不稳定的启动之后,缓存会被破坏,并且在您终止缓存之前,您无法在该文件夹中运行 Gallio,
    • 好吧,问题永远解决了。虽然,我认为是时候离开 Gallio 和 mbunit 了。他们似乎不再跟上。
    【解决方案3】:

    似乎将二进制文件放在名为 MbUnit 的文件夹中会导致问题。当我将文件夹重命名为 Gallio 时,一切都开始正常工作。

    Gallio 开发人员告诉我他们不能复制这个...但它是一致的,我什至将文件夹重命名,并且错误再次出现。

    【讨论】:

      猜你喜欢
      • 2016-02-17
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 2020-11-08
      • 2011-07-15
      • 2022-11-25
      相关资源
      最近更新 更多