From 4032a0e7207b678ace7939784ad39a21cc3dc89e Mon Sep 17 00:00:00 2001 From: NikolayPianikov Date: Thu, 14 Jun 2018 18:46:13 +0300 Subject: [PATCH] #127 TW-54720 Test results not being reported with .NET CLI 2.1 release - fix the vstest scenario --- .../dotnet/VSTestLoggerArgumentsProvider.kt | 4 ++- .../VSTestLoggerArgumentsProviderTest.kt | 28 +++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/plugin-dotnet-agent/src/main/kotlin/jetbrains/buildServer/dotnet/VSTestLoggerArgumentsProvider.kt b/plugin-dotnet-agent/src/main/kotlin/jetbrains/buildServer/dotnet/VSTestLoggerArgumentsProvider.kt index 23ce8fd45..7db583b6b 100644 --- a/plugin-dotnet-agent/src/main/kotlin/jetbrains/buildServer/dotnet/VSTestLoggerArgumentsProvider.kt +++ b/plugin-dotnet-agent/src/main/kotlin/jetbrains/buildServer/dotnet/VSTestLoggerArgumentsProvider.kt @@ -8,7 +8,8 @@ import kotlin.coroutines.experimental.buildSequence */ class VSTestLoggerArgumentsProvider( - private val _loggerResolver: LoggerResolver) + private val _loggerResolver: LoggerResolver, + private val _loggerParameters: LoggerParameters) : ArgumentsProvider { override val arguments: Sequence @@ -16,6 +17,7 @@ class VSTestLoggerArgumentsProvider( _loggerResolver.resolve(ToolType.VSTest).parentFile?.let { yield(CommandLineArgument("/logger:logger://teamcity")) yield(CommandLineArgument("/TestAdapterPath:${it.absolutePath}")) + yield(CommandLineArgument("/logger:console;verbosity=${_loggerParameters.VSTestVerbosity.id.toLowerCase()}")) } } } \ No newline at end of file diff --git a/plugin-dotnet-agent/src/test/kotlin/jetbrains/buildServer/dotnet/test/dotnet/VSTestLoggerArgumentsProviderTest.kt b/plugin-dotnet-agent/src/test/kotlin/jetbrains/buildServer/dotnet/test/dotnet/VSTestLoggerArgumentsProviderTest.kt index c41ae0097..38c3c2e24 100644 --- a/plugin-dotnet-agent/src/test/kotlin/jetbrains/buildServer/dotnet/test/dotnet/VSTestLoggerArgumentsProviderTest.kt +++ b/plugin-dotnet-agent/src/test/kotlin/jetbrains/buildServer/dotnet/test/dotnet/VSTestLoggerArgumentsProviderTest.kt @@ -1,6 +1,11 @@ package jetbrains.buildServer.dotnet.test.dotnet +import jetbrains.buildServer.agent.runner.PathsService +import jetbrains.buildServer.dotnet.LoggerParameters import jetbrains.buildServer.dotnet.VSTestLoggerArgumentsProvider +import jetbrains.buildServer.dotnet.Verbosity +import org.jmock.Expectations +import org.jmock.Mockery import org.testng.Assert import org.testng.annotations.DataProvider import org.testng.annotations.Test @@ -13,20 +18,39 @@ class VSTestLoggerArgumentsProviderTest { // Success scenario arrayOf( File("loggerPath", "vstestlogger.dll") as File?, + Verbosity.Normal, listOf( "/logger:logger://teamcity", - "/TestAdapterPath:${File("loggerPath").absolutePath}")) + "/TestAdapterPath:${File("loggerPath").absolutePath}", + "/logger:console;verbosity=normal")), + + arrayOf( + File("loggerPath", "vstestlogger.dll") as File?, + Verbosity.Detailed, + listOf( + "/logger:logger://teamcity", + "/TestAdapterPath:${File("loggerPath").absolutePath}", + "/logger:console;verbosity=detailed")) ) } @Test(dataProvider = "testLoggerArgumentsData") fun shouldGetArguments( loggerFile: File, + verbosity: Verbosity, expectedArguments: List) { // Given - val argumentsProvider = VSTestLoggerArgumentsProvider(LoggerResolverStub(File("msbuildlogger"), loggerFile)) + val ctx = Mockery() + val loggerParameters = ctx.mock(LoggerParameters::class.java) + val argumentsProvider = VSTestLoggerArgumentsProvider(LoggerResolverStub(File("msbuildlogger"), loggerFile), loggerParameters) // When + ctx.checking(object : Expectations() { + init { + oneOf(loggerParameters).VSTestVerbosity + will(returnValue(verbosity)) + } + }) val actualArguments = argumentsProvider.arguments.map { it.value }.toList() // Then