2

一段时间以来,我一直在使用 MbUnit 以及 Nhibernate 和 Sqlite 进行单元测试。

我现在正在尝试使用 Jenkins 设置 CI 服务器 - 我已成功配置 Jenkins 以从 github 提取代码并在每次有人推送到 github 时使用 MSBuild 对其进行编译。最后,我想在每次成功构建时对代码进行测试。

从 Visual Studio 中运行时,测试全部成功运行,没有任何问题,我可以单独运行每个测试或整个项目,它们都运行正常。但是,当我从命令行调用 Gallio.Echo.exe 时,所有与 Sqlite 相关的测试都失败了。

这是我一直在做的从命令行运行测试:

"C:\Program Files\Gallio\bin\Gallio.Echo.exe" /report-type:Html /verbosity:quiet "D:\MyProject\MyProject.Tests\bin\Debug\*.Tests.dll"

(ps:似乎完全没有关于gallio工具的文档——我是否一直在寻找所有错误的地方?我想找到更多关于我可以传递的命令行参数的信息)

测试失败了:

   Gallio Echo - Version 3.3 build 454
   Get the latest version at http://www.gallio.org/

   Initializing the runtime and loading plugins.
   Verifying test files.
   Initializing the test runner.
   Running the tests.
   [failed] Fixture MyProject.Tests/VerificationTests
   Set Up
   FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.

    ---> NHibernate.HibernateException: Could not create the driver from NHibernate.Driver.SQLite20Driver, NHibernate, Version=3.3.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4. 
    ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. 
    ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.
   HResult: -2147024809
      at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
      at NHibernate.Driver.ReflectionBasedDriver..ctor(String providerInvariantName, String driverAssemblyName, String connectionTypeName, String commandTypeName)
      at NHibernate.Driver.SQLite20Driver..ctor()
      --- End of inner exception stack trace ---  

我已经尝试了一些在 SO 上提到的解决方案,但一直无法解决。唯一接近的是这个答案,但我不确定用户通过添加到配置文件意味着什么。

任何人都知道为什么测试从命令行失败但从VS中运行时可以吗?

谢谢。

4

0 回答 0