添加.runsettings文件时,TFS构建失败。

问题描述 投票:1回答:1

我试图从VS中指定一个Runsettings文件来添加一些覆盖规则。

自从我添加了它,其中一个测试开始失败。

该测试使用反射来加载一个依赖的程序集,并在其类上执行一些验证。

String FluentMigratorFullName = "MyAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null";
var fluentMigratorAssemblyName = new AssemblyName(FluentMigratorFullName);
var fluentMigratorAssembly = Assembly.Load(fluentMigratorAssemblyName);

我得到的错误是

System.IO.FileNotFoundException: Could not load file or assembly 'MyAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. 系统找不到指定的文件。

这在本地工作正常。

我知道有一个AssemblyResolution参数,但每次执行时的位置都会不同,因为它取决于接收构建的代理。

这是我的.runsettings

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>

  </RunConfiguration>

  <!-- Configurations for data collectors -->
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
        <Configuration>
          <CodeCoverage>
            <ModulePaths>
              <Exclude>
                <ModulePath>.*MyModule.*</ModulePath>
              </Exclude>
            </ModulePaths>

            <!-- We recommend you do not change the following values: -->
            <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
            <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
            <CollectFromChildProcesses>True</CollectFromChildProcesses>
            <CollectAspDotNet>False</CollectAspDotNet>

          </CodeCoverage>
        </Configuration>
      </DataCollector>

    </DataCollectors>
  </DataCollectionRunSettings>

  <!-- Parameters used by tests at runtime -->
  <TestRunParameters>

  </TestRunParameters>

  <!-- Adapter Specific sections -->

  <!-- MSTest adapter -->
  <MSTest>
    <MapInconclusiveToFailed>false</MapInconclusiveToFailed>
    <CaptureTraceOutput>true</CaptureTraceOutput>
  </MSTest>

</RunSettings>

更新。

我注意到 "在多核机器上并行运行测试 "之前是激活的。

把它重新打开就解决了这个问题。知道为什么吗?enter image description here

c# unit-testing reflection tfs
1个回答
0
投票

最后,我们最终在一个单独的测试步骤上运行了这个有问题的测试。说实话,日志提供的信息并不是很好,而且必须创建一个单独的代理队列,在那里启用融合日志似乎有点矫枉过正。

© www.soinside.com 2019 - 2024. All rights reserved.