如何配置VSTest 2015的目标框架以运行为使用.net 4.6.1构建的单元测试?

如何配置VSTest 2015的目标框架以运行为使用.net 4.6.1构建的单元测试?,.net,unit-testing,teamcity,vstest,.net-4.6.1,.net,Unit Testing,Teamcity,Vstest,.net 4.6.1,我正在尝试配置TeamCity,以便使用Visual Studio 2015的VSTest.console.exe运行我的单元测试 对于测试运行程序(即使在.runsettings文件中)唯一有效的选项是: 当我将其设置为Framework46时,它告诉我: [19:17:33][Step 2/2] VSTest executable: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions

我正在尝试配置TeamCity,以便使用Visual Studio 2015的VSTest.console.exe运行我的单元测试

对于测试运行程序(即使在.runsettings文件中)唯一有效的选项是:

当我将其设置为Framework46时,它告诉我:

[19:17:33][Step 2/2] VSTest executable: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\VSTest.console.exe
[19:17:33][Step 2/2] Command line params: [[Y:\TeamCity\BuildAgent1\work\f1cf88fd0bf6555\Javelin.Identity.Tests\bin\x64\Integration\Javelin.Identity.Tests.dll] [/Settings:test.runsettings] [/Logger:trx] [/Platform:x86]]
[19:17:33][Step 2/2] Starting: C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe #TeamCityImplicit
[19:17:33][Step 2/2] in directory: Y:\TeamCity\BuildAgent1\work\f1cf88fd0bf6555
[19:17:33][Step 2/2] JetBrains dotCover Console Runner 10.0.2. Build 104.0.20151218.125453
[19:17:33][Step 2/2] Copyright (c) 2009-2016 JetBrains s.r.o. All rights reserved.
[19:17:34][Step 2/2] [JetBrains dotCover] Coverage session started [3/1/2016 7:17:34 PM]
[19:17:38][Step 2/2] Microsoft (R) Test Execution Command Line Tool Version 14.0.24720.0
[19:17:38][Step 2/2] Copyright (c) Microsoft Corporation.  All rights reserved.
[19:17:38][Step 2/2] 
[19:17:39][Step 2/2] Starting test execution, please wait...
[19:17:39][Step 2/2] Test run will use DLL(s) built for framework Framework45 and platform X86. Following DLL(s) will not be part of run: 
[19:17:39][Step 2/2] Javelin.Identity.Tests.dll is built for Framework None and Platform X64.
[19:17:39][Step 2/2]  Go to http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409 for more details on managing these settings.
[19:17:39][Step 2/2] Error: None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: X86  .Net Framework: Framework45. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings.
[19:17:39][Step 2/2] 
[步骤2/2]错误:加载设置时出错。 错误:设置“RunConfiguration”无效。无效值“Framework46” 为“TargetFrameworkVersion”指定


这是否应该与4.6.1一起使用?

这是在vstest.console中确认的。您可以尝试问题中建议的解决方法(通过runsettings文件指定框架,并将“框架”参数值保留为默认值)

您可以将runsettings文件中的TargetFrameworkVersion的值设置为以下值:
.NETFramework,版本=v4.6.1

我知道这是误导,因为他们在
我通过查看vstest.console.exe的help命令发现了这一点

其中包括:

--Framework|/Framework:<Framework Version>
  Target .Net Framework version to be used for test execution.
  Valid values are ".NETFramework,Version=v4.5.1", ".NETCoreApp,Version=v1.0" etc.
  Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10.
——框架|/Framework:
用于测试执行的目标.Net Framework版本。
有效值为“.NETFramework,版本=v4.5.1”、“.NETCoreApp,版本=v1.0”等。
其他支持的值包括Framework35、Framework40、Framework45和FrameworkCore10。
然后我试着使用这些值中的任何一个,结果成功了。在我的例子中是.NET4.5.2

.RunSettings文件的示例如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- [x86] | x64  
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
    <TargetPlatform>x64</TargetPlatform>

    <!-- Framework35 | [Framework40] | Framework45 -->
    <TargetFrameworkVersion>.NETFramework,Version=v4.5.2</TargetFrameworkVersion>
  </RunConfiguration>

  <!-- Configurations for data collectors -->
  <DataCollectionRunSettings>
    <DataCollectors>


    </DataCollectors>
  </DataCollectionRunSettings>

  <!-- Adapter Specific sections -->

  <!-- MSTest adapter -->
  <MSTest>  
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>  
    <CaptureTraceOutput>false</CaptureTraceOutput>  
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>  
    <DeploymentEnabled>False</DeploymentEnabled>  
    <AssemblyResolution>  
      <Directory path=".\bin" includeSubDirectories="false"/>  
    </AssemblyResolution>  
  </MSTest>  
</RunSettings>

测试结果
x64
.NETFramework,版本=v4.5.2
真的
假的
假的
假的

不幸的是,我尝试了这种变通方法,但从TeamCity运行时,它不起作用。我在上面的问题中添加了更多详细信息以反映这一点。这就是为什么您应该始终复制链接的相关部分,而不是发布仅链接的答案:MS Connect站点已退出,而答案现在不可用…我确实发现,当我在命令提示符下使用此testrunner运行vstest.console.exe时,所以,也许问题似乎是如何从城市队中脱颖而出。这对我来说并不管用。在VS2017中,我在测试输出窗口中遇到以下错误:[7/6/2018 9:48:38 AM error]未能为runsettings插件“VSTest Run Configuration”配置设置,因为它引发以下异常:“加载设置时出错。”。错误:无效的设置“RunConfiguration”。无效值。为“TargetFrameworkVersion”指定的“.NETFramework,Version=v4.6.1”请与插件作者联系。希望通过提供的示例文件,您不会再有此错误
vstest.console.exe /?
--Framework|/Framework:<Framework Version>
  Target .Net Framework version to be used for test execution.
  Valid values are ".NETFramework,Version=v4.5.1", ".NETCoreApp,Version=v1.0" etc.
  Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- [x86] | x64  
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
    <TargetPlatform>x64</TargetPlatform>

    <!-- Framework35 | [Framework40] | Framework45 -->
    <TargetFrameworkVersion>.NETFramework,Version=v4.5.2</TargetFrameworkVersion>
  </RunConfiguration>

  <!-- Configurations for data collectors -->
  <DataCollectionRunSettings>
    <DataCollectors>


    </DataCollectors>
  </DataCollectionRunSettings>

  <!-- Adapter Specific sections -->

  <!-- MSTest adapter -->
  <MSTest>  
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>  
    <CaptureTraceOutput>false</CaptureTraceOutput>  
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>  
    <DeploymentEnabled>False</DeploymentEnabled>  
    <AssemblyResolution>  
      <Directory path=".\bin" includeSubDirectories="false"/>  
    </AssemblyResolution>  
  </MSTest>  
</RunSettings>