我目前正在使用mbunit构建测试套件。到目前为止一切顺利,但我没有使用包含的Icarus GUI,而是希望拥有自己的测试运行器。我不太了解该怎么做,我继续使用Gallio的Google小组并复制用户发布的代码:
http://groups.google.com/group/gallio-user/browse_thread/thread/afab404a14674cd2
我得到了以下异常:
Gallio.Runtime.RuntimeException未处理 Message =无法解析服务类型'Gallio.Runner.Projects.ITestProjectManager'的组件,因为似乎没有为该服务类型注册和启用任何组件。 来源=加利奥 堆栈跟踪: 在Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveNonDisabledDescriptor(类型serviceType) 在Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveImpl(类型serviceType) 在Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveTService 在Gallio.Runner.TestLauncher.RunWithRuntime() 在Gallio.Runner.TestLauncher.Run() 在Dundas.Dashboard.TestSystem.TestPrograms.Driver.RunTests()在C:\ Users \ edmondc \ Documents \ Visual Studio 2010 \ Projects \ AutomatedTestSystem \ TestPrograms \ ImageComparisonTest \ Driver.cs:第49行 在C:\ Users \ edmondc \ Documents \ Visual Studio 2010 \ Projects \ AutomatedTestSystem \ TestConsole \ Program.cs中的Dundas.Dashboard.TestSystem.Program.Main(String [] args):第13行 在System.AppDomain._nExecuteAssembly(RuntimeAssembly程序集,String [] args) 在System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String [] args) 在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在System.Threading.ThreadHelper.ThreadStart_Context(对象状态) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean ignoreSyncCtx) 在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态) 在System.Threading.ThreadHelper.ThreadStart() InnerException:
我在那里做错了什么?
答案 0 :(得分:7)
您可能希望使用可能位于Gallio安装目录中某处的Gallio Loader。加载器以您需要包含在项目中的几个C# source files提供。其目的是简化Gallio在自定义应用程序中的集成。
一个简单的用法如下:
TestLauncher launcher = new TestLauncher();
launcher.AddFilePattern("MyTestAssembly.dll");
TestLauncherResult result = launcher.Run();
编辑:有关测试启动器的更复杂用法,请查看Echo源代码。