Comment créer un pipeline DevOps supportant .net 10, et Microsoft Testing Paltform 2 ?
Date of publication
2/27/2026
No comments
Depuis le début, l'usage de Microsoft Testing Platform n'est pas de tout repos. Pour compliquer la chose, il n'existe aucun Template de build.
Mais en se penchant sur les différentes documentations, on finit par trouver une solution.
Je vous propose aujourd'hui une procédure de mon cru que j’utilise avec succès depuis deux mois.
Dans un premier temps, nous devons créer un fichier globa.json à la racine du repository.
{
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
Ensuite, il faut résoudre les problèmes suivants :
- DotNetCoreCLI@2 test, ne peut pas être utilisé avec la propriété projects.
- DotNetCoreCLI@2 test, ajoute des arguments propres à VSTest quand on laisse la publication automatique active.
- DotNetCoreCLI@2 test, n'applique pas le fichier global.json s'il n'est pas à la racine du repository.
Ma solution consiste donc en l'enchaînement de taches qui suit :
- task: DotNetCoreCLI@2
displayName: 'Compilation'
inputs:
command: build
projects: $(solution)
arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: 'Tests unitaires'
inputs:
command: test
publishTestResults: false
arguments: '--solution $(solution) --no-restore --configuration $(buildConfiguration) --report-trx --results-directory $(Agent.TempDirectory) --coverage --coverage-output-format cobertura --coverage-output coverage.cobertura.xml'
# si le global.json est dans un dossier "Sources"
# workingDirectory: '$(Build.SourcesDirectory)\Sources\'
- task: PublishTestResults@2
displayName: "Publication des resultats des tests unitaires"
condition: always()
inputs:
testResultsFormat: VSTest
searchFolder: $(Agent.TempDirectory)
testResultsFiles: "**/*.trx"
- task: reportgenerator@5
displayName: 'Génération du rapport de couverture de code'
inputs:
reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: 'coveragereport'
publishCodeCoverageResults: true
Note: Aucune IA n’a été maltraitée pour obtenir cette solution.