以编程方式调用mbunit Test Runner

时间:2011-08-17 20:33:31

标签: c# mbunit

我目前正在使用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:

我在那里做错了什么?

1 个答案:

答案 0 :(得分:7)

您可能希望使用可能位于Gallio安装目录中某处的Gallio Loader。加载器以您需要包含在项目中的几个C# source files提供。其目的是简化Gallio在自定义应用程序中的集成。

一个简单的用法如下:

TestLauncher launcher = new TestLauncher();
launcher.AddFilePattern("MyTestAssembly.dll");
TestLauncherResult result = launcher.Run();

编辑:有关测试启动器的更复杂用法,请查看Echo源代码。