zoukankan      html  css  js  c++  java
  • 命令行执行Nunit

    与窗体界面比较,控制台界面有一些额外的选项。命令行必须一直指定一个或多个文件名。控制台界面会一直创建一个XML格式的测试结果。缺省的文件取名为TestResult.xml,并且放置在工作目录里。

    :缺省的,nunit-console程序不会增加到你的路径里。如果有必要,你必须手动的增加它。

    :在Windows操作系统下,选项的前缀要么是斜杠,要么是一个连接符号。在Linux下,必须使用连接符号。带值的选项可以使用等于符号,冒号或空格来将选项和值分开。

    指定一个程序集

    控制台程序必须一直有一个指定的程序集或者工程。为了运行nunit.tests.dll包含的测试,使用下面的命令行:

            nunit-console nunit.tests.dll

    为了通过Visual Studio工程运行nunit.tests.dll的测试,使用:

            nunit-console nunit.tests.csproj

    为了通过你定义的NUnit测试工程运行同样的测试,使用: 

            nunit-console nunit.tests.nunit

    指定一个程序集和Fixture

    当指定一个fixture,你必给定包含测试fixture的程序集全路径名。例如,为了运行nunit.tests.dll的NUnit.Tests.AssertionTests,使用下面的命令:

            nunit-console /fixture:NUnit.Tests.AssertionTests nunit.tests.dll

    /fixture后指定的名称可以为一个TestFixture类,一个有效的套件(使用Suite属性)或者一个命名空间的名称。如果给定的是一个命名空间,在此命名空间下的所有fixture都将执行。本选项也可以和Visual Studio或NUnit工程一起使用。

    指定CLR版本

    编写的大多数应用程序都在某个特定版本的CLR下运行。少数设计为可以在多版本下正确操作。不管哪一种,能指定CLR版本进行运行测试是非常重要的。

    当仅有一个CLR版本使用时,nunit-gui以及nunit-console的配置文件可以指定该版本。为了选择CLR更加方便,你可以使用提供的clr.bat命令来指定NUnit在那一个版本下运行。

    例如,在.net 2.0 framework的RTM版本下,为了运行 nunit.tests.dll的测试,使用:

           clr net-2.0 nunit-console nunit.tests.dll

    clr.bat在NUnit 的bin目录下 .你可以将它放在你自己的路径下面,或者将它拷贝到一个恰当的位置。输入 clr /?获取一系列选项:

    :如果你在配置文件里使用一个<startup>块,它会预先使用本选项。

    :本命令指定为 Microsoft .Net  framework. Mono框架提供其他方式来指定运行命令时所 使用的版本。

    指定测试目录为Include或Exclude

    NUnit2.2提供  CategoryAttribute属性将某个测试  指定到一个或多个目录中。在运行测试时,可以使用/include以及/exclude选项包含或排除目录。下 面的命令仅仅运行在BaseLine目录下的测试案例:   

            nunit-console myassembly.dll /include:BaseLine

    下面的命令行运行所有测试,除了那些在Database目录下的:

            nunit-console myassembly.dll /exclude:Database            

    可以在某个选项中指定多个目录,使用逗号来分隔它们.

    :在当前发布版本中,你可以选择包含或排除一运行中的目录,但不能2者都选择。为了更清楚的理解目录选择是如何工作的,回顾一下Category以及Explicit属性的文档。

    重定向输出

    在控制台显示的输出可以重定向到文件。它包含了测试程序创建的输出,同时也包含了NUnit自己创建的。下面的命令会将标准输入重定向到TestResult.txt. 

            nunit-console nunit.tests.dll /out:TestResult.txt

    下面的命令将标准的错误输出重定向到StdErr.txt文件。 

            nunit-console nunit.tests.dll /err:StdErr.txt

    对测试输出进行标记

    每个测试的输出会跟着前面一个测试的输出之后。你可以使用/label选项创建一个标识标签在每个测试案例的开始处显示。

    指定XML文件名

    正如上面描述的  ,控制台程序会创建一个测试结果的XML形式。为了将输出文件名改为"console-test.xml“,使用下面的命令行选项:  

            nunit-console /xml:console-test.xml nunit.tests.dll

    指定转化(Transform)文件

    控制台使用XSLT将测试的结果转化为XML文件。当程序执行时,可以在屏幕上打印他们。控制台有一个缺省的转化形式,它是可执行的一部分。为了指定你自己的命名为"myTransform.xslt"的转化形式,使用下面的命令行选项:

            nunit-console /transform:myTransform.xslt nunit.tests.dll

    :为了得到更多测试结果的信息,参看XML schema。该文件为Results.xsd,可执行文件同处一目录。缺省的转化为Summary.xslt ,它在核心源代码目录 。

    指定运行哪一个配置

    方运行Visual Studio或NUnit工程的测试时,会缺省的加载找到的第一个配置。通常是Debug。加载的配置也可以使用/config开关来控制。下面将加载nunit.tests.dll的Release配置,并在之下运行测试。

            nunit-console nunit.tests.csproj /config:Release

    :当直接加载一个程序集时,该选项没有任何影响。

    指定多个程序集

    你可以使用控制台界面运行多个程序集的测试  ,甚至你并没有定义一个NUnit测试工程文件时。下面的命令会运行 assembly1.dll,   assembly2.dll 和assembly3.dll包含的测试。

    nunit-console assembly1.dll assembly2.dll assembly3.dll

    :你可以在命令行里指定多个程序集,不仅是多个NUnit,也可以是Visual Studio工程。更进一步,你可以不用指定一个带有多个程序集的NUnit或Visual Studio工程。/fixture选项可以和多个程序集一起使用,但是简单指定包含fixture的程序集可能更加有效。

    其他选项

    /noshadow选项禁止程序集的影拷贝,以改善其性能。

    /thread选项会创建一个单独的线程供运行测试用。在某些情况下这是有必要的,例如测试必须在一特殊类型的公寓里运行。通过在一独立的线程里运行,在配置文件的元素下的ApartmentState和ThreadPriority设置会非常有用。如果无线程创建,他们会被忽略,apartment和控制台程序的一样。

    :控制台程序的apartment状态可以在不同的发布版本中改变,因此需要一个公寓的用户可以利用该设置,而不是依靠缺省的。

    /wait选项让程序在退出前,等待用户的输入。当使用快捷方式运行nunit-console时非常有用。

    /xmlconsole选项在控制台里显示未经处理的XML输出,而不是转化它。当调试XML格式的问题时非常有效。

    /nologo选项禁止在程序启动时显示版权信息。

    /help/?选项显示一个简要的帮助信息。

    如何命令行打印出来的内容太多,而这些又不是我们想要的,我们最关注的的测试出错的结果,这时候,我们可以将打印的结果输出到指定目录,比如: nunit-console.exe /out:c:\UserCenterLog.txt 该命令是把测试正常打印出来的代码全部存储到c:\UserCenterLog.txt,这时候,命令行窗口只会输出测试的结果以及测试出错有问题的代码:如下:

    C:\tools\tomcat6\webapps\hudson-3.0.0\tempdir\jobs\UserCenter_TA\workspace>C:\tools\NUnit-2.6.2\bin\nunit-console.exe /out:c:\1.txt C:\tools\tomcat6\webapps\hudson-3.0.0\tempdir\jobs\UserCenter_TA\workspace\UserCenterTester\CQTest\CQTest\TestUserCentre\bin\Debug\TestUserCentre.dll 
    NUnit-Console version 2.6.2.12296
    Copyright (C) 2002-2012 Charlie Poole.
    Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
    Copyright (C) 2000-2002 Philip Craig.
    All Rights Reserved.
    
    Runtime Environment - 
       OS Version: Microsoft Windows NT 6.1.7600.0
      CLR Version: 2.0.50727.4927 ( Net 3.5 )
    
    ProcessModel: Default    DomainUsage: Single
    Execution Runtime: net-3.5
    ....................F.F.F.....F.F.F.................................................................................................................................F......................................................................................................................................................................................................F......................................................................................................................................................................................................................................................
    Tests run: 602, Errors: 2, Failures: 6, Inconclusive: 0, Time: 195.1774164 seconds
      Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0
    
    Errors and Failures:
    1) Test Failure : TestUserCenter.TestSiteService.GetGamePasspod
       GetGamePasspod is null 
    at TestUserCenter.TestSiteService.GetGamePasspod() in E:\EveryDayWork\2013\3\3-27\UserCenterTest\CQTest\CQTest\TestUserCentre\TestSiteService.cs:line 764
    
    2) Test Failure : TestUserCenter.TestSiteService.GetGamePasspod_gameId
       GetGamePasspod is null 
    at TestUserCenter.TestSiteService.GetGamePasspod_gameId() in E:\EveryDayWork\2013\3\3-27\UserCenterTest\CQTest\CQTest\TestUserCentre\TestSiteService.cs:line 785
    
    3) Test Failure : TestUserCenter.TestSiteService.GetGamePasspods
       is null 
    at TestUserCenter.TestSiteService.GetGamePasspods() in E:\EveryDayWork\2013\3\3-27\UserCenterTest\CQTest\CQTest\TestUserCentre\TestSiteService.cs:line 807
    
    4) Test Error : TestUserCenter.TestSiteService.GetUserCountAndFeeByDay
       hessiancsharp.io.CHessianException : The service has no method named: GetUserCountAndFeeByDay__2
       at hessiancsharp.client.CHessianMethodCaller.DoHessianMethodCall(Object[] arrMethodArgs, MethodInfo methodInfo)
       at hessiancsharp.client.CHessianProxyStandardImpl.Invoke(IMessage msg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       at BkNew.UserCenter.Common.IService.IUserTradingService.GetUserCountAndFeeByDay(String userId, DateTime time)
       at TestUserCenter.TestSiteService.GetUserCountAndFeeByDay() in E:\EveryDayWork\2013\3\3-27\UserCenterTest\CQTest\CQTest\TestUserCentre\TestSiteService.cs:line 104
    
    5) Test Error : TestUserCenter.TestSiteService.GetUserCountAndFeeByMonth
       hessiancsharp.io.CHessianException : The service has no method named: GetUserCountAndFeeByMonth__2
       at hessiancsharp.client.CHessianMethodCaller.DoHessianMethodCall(Object[] arrMethodArgs, MethodInfo methodInfo)
       at hessiancsharp.client.CHessianProxyStandardImpl.Invoke(IMessage msg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       at BkNew.UserCenter.Common.IService.IUserTradingService.GetUserCountAndFeeByMonth(String userId, DateTime time)
       at TestUserCenter.TestSiteService.GetUserCountAndFeeByMonth() in E:\EveryDayWork\2013\3\3-27\UserCenterTest\CQTest\CQTest\TestUserCentre\TestSiteService.cs:line 191
    
    6) Test Failure : TestUserCenter.TestSiteService.GetUserTradingInfo
       GetUserTradingInfo is null
    at TestUserCenter.TestSiteService.GetUserTradingInfo() in E:\EveryDayWork\2013\3\3-27\UserCenterTest\CQTest\CQTest\TestUserCentre\TestSiteService.cs:line 232
    
    7) Test Failure : TestUserCenter.TestUserService.申请贵宾服务功能已关闭
       System.Exception was expected
    8) Test Failure : TestUserCenter.TestUserService.GetUserSecurityLevel
         Expected: False
      But was:  True
    
    at TestUserCenter.CqComp.ThanResults(Boolean ExpectedValues, Boolean TestResults) in E:\EveryDayWork\2013\3\3-27\UserCenterTest\CQTest\CQTest\TestTools\CqComp.cs:line 135
    at TestUserCenter.TestUserService.GetUserSecurityLevel() in E:\EveryDayWork\2013\3\3-27\UserCenterTest\CQTest\CQTest\TestUserCentre\TestUserService.cs:line 5251
    
    
    
    C:\tools\tomcat6\webapps\hudson-3.0.0\tempdir\jobs\UserCenter_TA\workspace>exit 8 
    Email was triggered for: Failure
    Sending email for trigger: Failure
  • 相关阅读:
    net start mongodb 提示:发生系统错误 5,拒绝访问。
    jquery下载所有版本
    国内优秀开源镜像站汇总
    bootstrap导航条报错 Uncaught TypeError: Cannot convert object to primitive value
    null的坑 和 比较运算符、相等运算符的隐式转换问题 (在javascript中,null>=0 为真,null<=0 为真,null==0却为假,null到底是什么?)
    关于 圣杯布局(双飞翼布局)的一些想法
    如何制作图标字体(如何将svg转换为css可用的图标字体)
    VirtualBox-虚拟硬盘扩容-win7
    前端JS导出表格
    JS判断是否是IE浏览器
  • 原文地址:https://www.cnblogs.com/webyu/p/2984059.html
Copyright © 2011-2022 走看看