一段时间以来,我一直在使用 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中运行时可以吗?
谢谢。