У меня была эта проблема уже довольно давно, и я не могу заставить ее работать. Я создал файл настроек запуска, который хочу использовать в своем конвейере, чтобы игнорировать некоторые файлы .cs и .cshtml из результатов покрытия. Судя по тому, что я вижу, файл настроек запуска полностью игнорируется (я почти уверен, что конвейер находит файл, поскольку, если я изменю его имя, задача не будет выполнена с сообщением «Файл не найден»). Это трубопровод:
- task: DotNetCoreCLI@2
displayName: 'DotNetCore Test'
inputs:
command: 'test'
projects: '$(uniTestProject)'
arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code coverage" --settings coverage.runsettings'
publishTestResults: true
- task: PublishCodeCoverageResults@2
displayName: "Publish Code Coverage Report"
inputs:
summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
А это мой файл настроек запуска:
<?xml version = "1.0" encoding = "utf-8"?>
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName = "XPlat Code Coverage">
<Configuration>
<CodeCoverage>
<Exclude>
<ModulePath>.*Storage.*</ModulePath>
<Source>.*\.cshtml</Source>
<Function>CloudViewer.Program</Function>
<Function>CloudViewer.Startup</Function>
</Exclude>
<OutputFormat>Cobertura</OutputFormat>
<OutputName>MyCustomCoverage.cobertura.xml</OutputName>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
Я уже пытался указать полный путь к файлу настроек, изменить его имя и запустить локально с теми же проблемами.





Чтобы исключить файл .cs, вы можете использовать <ExcludeByFile>**/<path>/*.cs</ExcludeByFile> в .runsettings.
Мой образец для справки:
<?xml version = "1.0" encoding = "utf-8"?>
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName = "XPlat Code Coverage">
<Configuration>
<Format>cobertura</Format>
<ExcludeByFile>**/ClassLibrary1/Class2.cs</ExcludeByFile>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
Мой трубопровод:
- task: DotNetCoreCLI@2
displayName: dotnet test
inputs:
command: 'test'
projects: '**\XUnitTestProject1.csproj'
arguments: '--configuration Release --collect:"XPlat Code Coverage" --settings XUnitTestProject1\.runsettings'
Результат конвейера: