#tfs #nunit #tfsbuild #tfs-2015 #nunit-3.0
#tfs #nunit #tfsbuild #tfs-2015 #nunit-3.0
Вопрос:
У меня есть процесс с TFS Build Vnext с 2 этапами тестирования (также сборка решения, … но это не проблема), один этап тестирования предназначен для модульных тестов, а другой — для интеграционных тестов.
Шаг с интеграционными тестами в порядке, никаких проблем с публикацией тестов в TFS в конце шага нет, у меня есть диаграммы в сводке сборки.
Однако для шага с модульными тестами TFS не может опубликовать результаты, у меня есть это предупреждение в выходных данных сборки :
Не удалось опубликовать результаты тестирования: Значение StartDate не входит в число допустимых значений.
Я не понимал, почему у меня был этот вывод, пока не открыл файл результатов теста trx.
файл.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 не влияет на правильное значение атрибута start во времена узла.
Почему ?
У меня есть ~ 80 интеграционных тестов и ~ 1400 модульных тестов, это количество модульных тестов? или что-то еще ?
Я попытался удалить этап модульных тестов и воссоздать его заново.
Техническая информация: Тестовая платформа :
- Nunit 3.5.0 с адаптером тестирования Nunit VS 3.4.1
- TFS 2015 с соблюдением всех требований
- Используемая задача : Тест Visual Studio
Например, я попытался понизить Nunit до версии 3.4.1, чтобы соответствовать версии с адаптером, это ничего не изменило.
Конфигурация тестовой задачи (одинаковая конфигурация для обеих тестовых задач):
- Параметры выполнения :
- Тестовая сборка: одна сборка
- Запустите файл настроек: см. Ниже
- Включено покрытие кода: true
- Запуск параллельно: true
- Дополнительные параметры выполнения :
- Версия VSTest: VS 2015
- Параметры отчетов :
- Платформа: любой процессор
- Конфигурация: выпуск
- Загрузка тестовых вложений: верно
Файл 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
lt;/ModulePath>
<ModulePath>.*.exelt;/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
lt;/Attribute>
<Attribute>^System.Diagnostics.DebuggerNonUserCodeAttributelt;/Attribute>
<Attribute>^System.Runtime.CompilerServices.CompilerGeneratedAttributelt;/Attribute>
<Attribute>^System.CodeDom.Compiler.GeneratedCodeAttributelt;/Attribute>
<Attribute>^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttributelt;/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>^B77A5C561934E089lt;/PublicKeyToken>
<PublicKeyToken>^B03F5F7F11D50A3Alt;/PublicKeyToken>
<PublicKeyToken>^31BF3856AD364E35lt;/PublicKeyToken>
<PublicKeyToken>^89845DCD8080CC91lt;/PublicKeyToken>
<PublicKeyToken>^71E9BCE111E9429Clt;/PublicKeyToken>
<PublicKeyToken>^8F50407C4E9E73B6lt;/PublicKeyToken>
<PublicKeyToken>^E361AF139669C375lt;/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:agenttasksVSTest1.0.32VSTest.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_work4 2016-10-18T07:54:21.6669608Z Executing C:Program Files (x86)Microsoft Visual Studio 14.0Common7IDECommonExtensionsMicrosoftTestWindowvstest.console.exe "C:agent_work4sEDM 1-devPrograms and ComponentsAPIArchimed.Edm.TestsbinReleaseArchimed.Edm.UnitTests.dll" /Settings:"C:UsersTFSBUILDAppDataLocalTemptmpAE1E.tmp" /EnableCodeCoverage /logger:trx /TestAdapterPath:"C:agent_work4s" 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_work4s........binReleaseUnitTests.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:UsersTFSBUILDAppDataLocalTempTestResultstfsbuild_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:UsersTFSBUILDAppDataLocalTempTestResultseb407547-19e7-4485-8b35-44f8e51f344etfsbuild_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.
Комментарии:
1. Не могли бы вы поделиться своими подробными настройками для связанных двух тестовых задач?
2. Можете ли вы предоставить доступ к журналам сборки для этой задачи?
Ответ №1:
Я ничего не менял, настройки задачи или настройки tfs. Теперь это работает. Я не понимаю.