加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

tdd – 如何告诉MSTEST在解决方案中运行所有测试项目?

发布时间:2020-12-14 04:32:14 所属栏目:百科 来源:网络整理
导读:我需要知道如何告诉MSTEST在解决方案文件中运行所有测试项目。这需要从命令行完成。现在我必须通过一个特定的项目文件,我试图让它从一个SOLUTION文件运行。 我希望这是可能的,因为在Visual Studio中,按Ctrl R,A,在当前打开的解决方案中运行所有测试。
我需要知道如何告诉MSTEST在解决方案文件中运行所有测试项目。这需要从命令行完成。现在我必须通过一个特定的项目文件,我试图让它从一个SOLUTION文件运行。

我希望这是可能的,因为在Visual Studio中,按Ctrl R,A,在当前打开的解决方案中运行所有测试。

我解释了帮助文件的方法,你必须具体地传递每个DLL。

我想从我的CruiseControl.NET服务器的命令行运行它,所以我可以编写其他实用程序来实现这一点。如果有一种方法可以通过其他方法发生,请告诉我们。

如何告诉MSTEST为解决方案运行所有测试项目?

<exec>
    <!--MSTEST seems to want me to specify the projects to test -->
    <!--I should be able to tell it a SOLUTION to test!-->
    <executable>mstest.exe</executable>
    <baseDirectory>C:projectsmysolution&;/baseDirectory>
    <buildArgs>/testcontainer:testproject1binreleaseTestProject1.dll 
    /runconfig:localtestrun.Testrunconfig 
    /resultsfile:C:Resultstestproject1.results.trx</buildArgs>
    <buildTimeoutSeconds>600</buildTimeoutSeconds>
</exec>
要详细说明VladV的答案并使事情变得更具体一些,遵循建议的命名约定运行测试可以很容易地使用 MSBuild自动化。以下从我当前项目的msbuild文件中获取的代码片段完全符合您的要求。
<Target Name="GetTestAssemblies">
    <CreateItem
        Include="$(WorkingDir)unittest**bin$(Configuration)***Test*.dll"
        AdditionalMetadata="TestContainerPrefix=/testcontainer:">
       <Output
           TaskParameter="Include"
           ItemName="TestAssemblies"/>
    </CreateItem>
</Target>
<!-- Unit Test -->
<Target Name="Test" DependsOnTargets="GetTestAssemblies">
    <Message Text="Normal Test"/>
<Exec 
    WorkingDirectory="$(WorkingDir)unittest"
    Command="MsTest.exe @(TestAssemblies->'%(TestContainerPrefix)%(FullPath)',' ') /noisolation /resultsfile:$(MSTestResultsFile)"/>
    <Message Text="Normal Test Done"/>
</Target>

此外,将MsBuild与CruiseControl集成是一块蛋糕。

编辑
以下是您可以从ccnet.config“调用”msbuild的方式。

首先,如果您尚未使用MSBuild作为构建自动化,则会在前面提供的代码段中添加以下xml:

<Project DefaultTargets="Build"
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ..... <insert snippet here> .....
</Project>

保存在例如您的源代码树中的解决方案旁边的RunTests.proj。现在您可以将ccnet.config的位修改为以下内容:

<msbuild>
  <executable>C:WINDOWSMicrosoft.NETFrameworkv2.0.50727MSBuild.exe</executable>
  <workingDirectory>C:projectsmysolution&;/workingDirectory>
  <baseDirectory>C:projectsmysolution&;/baseDirectory>  
  <projectFile>RunTests.proj</projectFile>
  <targets>Test</targets>
  <timeout>600</timeout>
  <logger>C:Program FilesCruiseControl.NETserverThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读