我知道这是,以某种方式是可能的,因为我们有一个项目,该项目包含可通过VS2010测试运行程序运行的MSTest单元测试。我们甚至可以将新的测试方法或类添加到现有项目中,而运行程序将接管它们并将其包括在测试运行中。
当我尝试向解决方案中添加新的单元测试项目时,问题就来了。如果将“测试项目”类型的项目添加到解决方案中,VS2010将生成运行其他项目中的任何其他测试所不需要的测试元数据和设置文件。例如,对于OSS项目,这是不希望的。如果我只是添加一个普通的“类库”项目,并在其中放置单元测试,那么测试运行程序将忽略它们,并且我根本无法识别它们。
我疯了吗?这是fl幸吗? VS2010甚至可以在没有.vsmdi文件或.testsettings文件的情况下运行我们拥有的测试吗?还是我缺少为新项目完成此工作所需的设置或配置?
最佳答案
您确实可以在VS中运行测试,而无需拥有.vsmdi和.testsettings文件(实际上,您可以在添加测试项目后将其删除)
那么,为什么它不能与普通的类库一起使用呢?遮篷位于.csproj文件中。
这是一个普通的类库:
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{F191EC72-AFDF-49CE-A918-01905E7C32EF}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>test</RootNamespace>
<AssemblyName>test</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
这是一个测试项目:
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{F191EC72-AFDF-49CE-A918-01905E7C32EF}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>test</RootNamespace>
<AssemblyName>test</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
最后一个元素
ProjectTypeGuids
告诉VS,它是一个可以在其上运行MSTest测试的项目。据我所知,这些向导总是相同的,[至少给定相同版本的VS],因此您应该能够将该行粘贴到任何.csproj文件中,并让VS识别其中的测试。测试设置文件对于指定部署选项(以及许多其他事情)很有用,但是大多数选项也可以在mstest.exe的命令行中指定。
.vsmdi也可以通过在测试方法中添加属性来替换。可以将
Properties
中可用于测试的大多数(如果不是全部)选项设置为属性,也可以将其设置为vsmdi文件。我通常更喜欢属性,因为它们与代码“更接近”。关于visual-studio-2010 - 在不包括.vsmdi和.testsettings的情况下在Visual Studio 2010中开发和运行MSTest单元测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6311541/