Tfs build vnext не может публиковать результаты тестирования

У меня есть процесс с TFS Build Vnext с двумя этапами тестирования (также, сборка решения, ... но это не проблема). Один этап тестирования предназначен для модульных тестов, а другой - для интеграционных тестов.

Шаг с интеграционными тестами в порядке, нет проблем с публикацией тестов в TFS в конце шага, у меня есть диаграммы в сводке сборки.

Однако для шага с модульными тестами TFS не может публиковать результаты, у меня есть это предупреждение в выводе сборки:

Не удалось опубликовать результаты теста: значение startDate не является частью допустимых значений.

Я не понимал, почему у меня такой вывод, пока не открыл файл результатов теста trx.

file.trx:

<Times creation="2016-10-17T12:08:09.1454974+02:00" queuing="2016-10-17T12:08:09.1454974+02:00" start="0001-01-01 00:00:00Z" finish="2016-10-17T12:09:26.9725722+02:00" />

TFS не влияет на правильное значение для начала атрибута в узле Times. Почему?
У меня ~ 80 интеграционных тестов и ~ 1400 юнит-тестов, это количество юнит-тестов? или что-то другое ?

Я попытался удалить этап модульных тестов и воссоздать его.

Техническая информация: Тестовая среда:

  • Nunit 3.5.0 с тестовым адаптером Nunit VS 3.4.1
  • TFS 2015 с соблюдением всех требований
  • Используемая задача: Visual Studio Test

Например, я пытался понизить Nunit до 3.4.1, чтобы встретить версию с адаптером, ничего не изменилось.

Конфигурация тестовой задачи (одинаковая конфигурация для обеих тестовых задач):

  • Execution Options :
    • Test Assembly : one assembly
    • Запустите файл настроек: см. Ниже
    • Покрытие кода включено: true
    • Параллельная работа: true
  • Advanced Execution Options :
    • VSTest version : VS 2015
  • Reporting Options :
    • Platform : any cpu
    • Конфигурация: Выпуск
    • Загрузить тестовые приложения: true

Файл RunSettings:

<?xml version="1.0" encoding="utf-8"?>
<!-- File name extension must be .runsettings -->
<RunSettings>
  <RunConfiguration>
    <TreatTestAdapterErrorsAsWarnings>true</TreatTestAdapterErrorsAsWarnings>
    <ResultsDirectory>.\TestResults</ResultsDirectory>
  </RunConfiguration>
  <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>
            <!--
            About include/exclude lists:
            Empty "Include" clauses imply all; empty "Exclude" clauses imply none.
            Each element in the list is a regular expression (ECMAScript syntax). See http://msdn.microsoft.com/library/2k3te2cs.aspx.
            An item must first match at least one entry in the include list to be included.
            Included items must then not match any entries in the exclude list to remain included.
            -->

            <!-- Match assembly file paths: -->
            <ModulePaths>
              <Include>
                <ModulePath>.*\.dll$</ModulePath>
                <ModulePath>.*\.exe$</ModulePath>
              </Include>
              <Exclude>
                <ModulePath>.*tests.*.dll</ModulePath>
              </Exclude>
            </ModulePaths>

            <!-- Match fully qualified names of functions: -->
            <!-- (Use "\." to delimit namespaces in C# or Visual Basic, "::" in C++.)  -->
            <Functions>
              <Exclude>                    
              </Exclude>
            </Functions>

            <!-- Match attributes on any code element: -->
            <Attributes>
              <Exclude>
                <!-- Don't forget "Attribute" at the end of the name -->

                <Attribute>^System\.Diagnostics\.DebuggerHiddenAttribute$</Attribute>
                <Attribute>^System\.Diagnostics\.DebuggerNonUserCodeAttribute$</Attribute>
                <Attribute>^System\.Runtime\.CompilerServices.CompilerGeneratedAttribute$</Attribute>
                <Attribute>^System\.CodeDom\.Compiler.GeneratedCodeAttribute$</Attribute>
                <Attribute>^System\.Diagnostics\.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>
              </Exclude>
            </Attributes>

            <!-- Match the path of the source files in which each method is defined: -->
            <Sources>
              <Exclude>
                <Source>.*\\atlmfc\\.*</Source>
                <Source>.*\\vctools\\.*</Source>
                <Source>.*\\public\\sdk\\.*</Source>
                <Source>.*\\microsoft sdks\\.*</Source>
                <Source>.*\\vc\\include\\.*</Source>
              </Exclude>
            </Sources>

            <!-- Match the company name property in the assembly: -->
            <CompanyNames>
              <Exclude>
                <CompanyName>.*microsoft.*</CompanyName>
              </Exclude>
            </CompanyNames>

            <!-- Match the public key token of a signed assembly: -->
            <PublicKeyTokens>
              <!-- Exclude Visual Studio extensions: -->
              <Exclude>
                <PublicKeyToken>^B77A5C561934E089$</PublicKeyToken>
                <PublicKeyToken>^B03F5F7F11D50A3A$</PublicKeyToken>
                <PublicKeyToken>^31BF3856AD364E35$</PublicKeyToken>
                <PublicKeyToken>^89845DCD8080CC91$</PublicKeyToken>
                <PublicKeyToken>^71E9BCE111E9429C$</PublicKeyToken>
                <PublicKeyToken>^8F50407C4E9E73B6$</PublicKeyToken>
                <PublicKeyToken>^E361AF139669C375$</PublicKeyToken>
              </Exclude>
            </PublicKeyTokens>


            <!-- 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>
</RunSettings>

Журналы тестовых заданий (французский):

2016-10-18T07:54:21.4325873Z Exécution du script PowerShell : C:\agent\tasks\VSTest\1.0.32\VSTest.ps1
2016-10-18T07:54:21.5107118Z ##[debug]Calling Invoke-VSTest for all test assemblies
2016-10-18T07:54:21.6669608Z Working folder: C:\agent\_work\4
2016-10-18T07:54:21.6669608Z Executing C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe "C:\agent\_work\4\s\EDM 1-dev\Programs and Components\API\Archimed.Edm.Tests\bin\Release\Archimed.Edm.UnitTests.dll"  /Settings:"C:\Users\TFSBUILD\AppData\Local\Temp\tmpAE1E.tmp" /EnableCodeCoverage /logger:trx /TestAdapterPath:"C:\agent\_work\4\s"
2016-10-18T07:54:21.8700845Z Microsoft (R) Test Execution Command Line Tool Version 14.0.25123.0
2016-10-18T07:54:21.8700845Z Copyright (c) Microsoft Corporation.  Tous droits réservés.
2016-10-18T07:54:22.2138323Z Démarrage de l'exécution du test, veuillez patienter...
2016-10-18T07:54:27.4169240Z Informations : NUnit Adapter 3.4.1.0: Test execution started
2016-10-18T07:54:27.4325489Z Informations : Running all tests in C:\agent\_work\4\s\........\bin\Release\UnitTests.dll
2016-10-18T07:54:28.9169144Z Informations : NUnit3TestExecutor converted 1265 of 1265 NUnit test cases
... Tests
2016-10-18T07:55:44.9787034Z Informations : NUnit Adapter 3.4.1.0: Test execution complete
... Tests
2016-10-18T07:55:45.5724420Z Fichier de résultats : C:\Users\TFSBUILD\AppData\Local\Temp\TestResults\tfsbuild_TFSBUILD-GED 2016-10-18 09_54_31.trx
2016-10-18T07:55:45.5724420Z Pièces jointes :
2016-10-18T07:55:45.5724420Z   C:\Users\TFSBUILD\AppData\Local\Temp\TestResults\eb407547-19e7-4485-8b35-44f8e51f344e\tfsbuild_TFSBUILD-GED 2016-10-18 09_54_24.coverage
2016-10-18T07:55:45.5724420Z Nombre total de tests : 1265. Réussite : 1241. Échec : 0. Ignorés : 0.
2016-10-18T07:55:45.5724420Z Test correctement exécuté.
2016-10-18T07:55:45.5724420Z Délai d'exécution des tests : 1,3805 Minutes
2016-10-18T07:55:45.6974396Z Publication des résultats des tests...
2016-10-18T07:55:46.1505559Z ##[warning]Échec de la publication des résultats des tests : La valeur de la propriété startDate ne fait pas partie des valeurs admises pour cette dernière.

person Zysce    schedule 17.10.2016    source источник
comment
Не могли бы вы поделиться своими подробными настройками для двух связанных тестовых задач?   -  person PatrickLu-MSFT    schedule 18.10.2016
comment
Можете ли вы поделиться журналами сборки для этой задачи?   -  person Eddie Chen - MSFT    schedule 19.10.2016


Ответы (1)


Ничего не менял, ни настройки задачи, ни настройки tfs. Теперь это работает. Я не понимаю.

person Zysce    schedule 19.10.2016