Azure Pipelines - Visual Studio Test does not publish results from TestContext.WriteLine - azure-devops

We are using Azure DevOps to run a build that runs tests using Visual Studio Test.
Everything is working fine, Console.WriteLine lines are being written to Standard Console Output.log, however TestContext.WriteLine are not appearing in the Detailed report.
The same lines are indeed appearing in the Output link on Test Explorer in Visual Studio.
Environment Information
Build Solution: Visual Studio 2017`
VSTest: Latest
Test Framework: MSTest.TestFramework 1.3.2
Test Adapter: MSTest.TestAdapter 1.3.2
Just to reiterate, TestContext is being instantiated correctly, and we are able to check the Output on local machine (Visual Studio 2015 Update 3), however the Ouput will not be published to Azure Pipelines build
Thank you,
Regards

Related

How to fulfil Visual Studio demand for self-hosted docker build agent?

I've successfully setup and run a self hosted docker build agent using the instructions here: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/docker?view=azure-devops however VS builds won't run on that agent because it doesn't fulfil a demand for Visual Studio. So my question is
How do install Visual Studio in the docker build agent?
However I've got a feeling this is the wrong question as the project can be build from the command line using dotnet, so an alternative question might be
How to I remove this demand for VS from my build pipeline?
I can't see as I've declared this demand anywhere in the YAML.
How do install Visual Studio in the docker build agent?
For this issue, you can install Visual Studio Build Tools in docker file and then use the built image in the container.
For details, please refer to this official document.

On Visual Studio Test task v2 I am getting the error: The test source file "...UnitTestFramework.dll" provided was not found

On Azure DevOps I have a build pipeline with a Visual Studio Test task v2:
I have the VS.QualityTools.UnitTestFramework nuget package on my solution.
I am getting the following error:
"(...)"D:\a\1\s\packages\VS.QualityTools.UnitTestFramework.15.0.27323.2\lib\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll"
"D:\a\1\s\packages\VS.QualityTools.UnitTestFramework.15.0.27323.2\lib\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll"
/logger:"trx"
/TestAdapterPath:"D:\a\1\s"
/diag:"D:\a_temp\54d6e190-44ec-11e9-ade6-9902b6d394ce.txt"
The test source file "D:\a\1\s\packages\VS.QualityTools.UnitTestFramework.15.0.27323.2\lib\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll" provided was not found."
When I run my tests on Visual Studio on my local machine, it works fine. Do you have any guess why this error is happening?
Based on your build definition display, you are currently using VS Test task v2.
According to current MS Docs documentation, using this VS Test task v2 means that this version only supports VS 2015, 2017, and 2019 unit test projects. But I strongly suggest that you use this task only for VS 2017 and VS 2019 to create the test projects.
If you use VS 2017, ensure that you are using VS 2017 15.7.1 or later to create the test project and to have nuget related packages that is compatible with VS 2017 at least Microsoft UnitTestFramework version 15.7.1 or later. Because this version is the initial version that allows you to create unit test projects with PackageReference model, instead of legacy packages.config model.

Is there an extension for running `mstest` tests in Visual Studio Code

I created a new .NET Core 2.1 solution to learn some new tools. In this solution I have two C# projects: a class library and mstest. I want to run the tests in my mstest project in Visual Studio Code. However, I do not see a way to do this.
I looked through the Visual Studio Code extensions, however, I didn't see an extension that targets mstest projects. Am I missing something?
If you are running .NET Core it looks like you can run unit tests by just typing dotnet tests. There is more documentation MS Docs .NET Unit Testing. But if you wanted to run MS Tests you don't need Visual Studio to do so it comes with its own console, or CLI. Its documented here and more about the command line tool here

I can't get Nuget push command to work on Visual Studio Online using latest Nuget tasks

I am using Visual Studio 2017 and Visual Studio Online. My team has recently switched to Asp.Net core 1.1 for our web development. Before we had a working nuget publishing process, but that doesn't work anymore because the old nuget tasks are deprecated.
I'm already aware that there should be Nuget package task before the push task, but that task has a known bug for .Net core. Instead I set up my project in VS so that the build task generates my .nupkg file.
Here is my setup from vs-online:
My setup for Nuget push task
The result looks like this:
The result when running.
I solved my problem myself.
I changed the path to:
**/*.nupkg;-:**/packages/**/*.nupkg;-:**/*.symbols.nupkg

CI Build Error with Visual Studio Test step after .Net 4.6 upgrade - Executor process exited; There was no endpoint listening at net.pipe

I just upgraded all of the projects in my solution to point to .Net 4.6 (There is a web app, some class libraries, a database project, etc.). I have a CI build set up in Visual Studio Team Services (using the new build system, not XAML) which was building successfully prior to the upgrade. This build definition runs Debug, Staging, and Production builds and the build definition is comprised of two steps:
Visual Studio Build
Visual Studio Test
Prior to this framework upgrade, everything was building fine. I upgraded and built everything locally and it all worked great too. I could run the tests and got green across the board. Now, when I checked my code in it kicked off the CI build, and I got the following error/s on the "Visual Studio Test" step (taken from the logs):
2015-09-18T19:08:02.1212067Z Microsoft (R) Test Execution Command Line Tool Version 14.0.23107.0
2015-09-18T19:08:02.1489666Z Copyright (c) Microsoft Corporation. All rights reserved.
2015-09-18T19:08:02.8906952Z Starting test execution, please wait...
2015-09-18T19:08:03.3713251Z Warning: Using Isolation mode to run tests as required by effective Platform:X86 and .Net Framework:Framework35 settings for test run. Use the /inIsolation parameter to suppress this warning.
2015-09-18T19:08:07.4457804Z ##[error]Error: Executor process exited.
2015-09-18T19:08:07.4457804Z ##[error]
2015-09-18T19:08:07.4557251Z ##[error]Error: There was no endpoint listening at net.pipe:[...redacted...] that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
2015-09-18T19:08:07.4557251Z ##[error]
2015-09-18T19:08:07.7730938Z ##[error]VSTest Test Run failed with exit code: 1
2015-09-18T19:08:07.8043435Z ##[warning]No results found to publish.
The Visual Studio Build passes for all three configurations, and the Test step only fails for Debug because it cannot find any tests for the other two configurations. Additionally, my builds are running off of an Azure VM that I stood up to act as a build server, and when I run the CI build using the Hosted build controller the Test step passes, because it cannot find any tests to execute, but the warning about using 'Isolation mode to run tests...' is still printed out in the log.
Is this a known issue? Has anyone else encountered this after a 4.6 upgrade or in another context in VSTS?
Edit: the .Net Framework 4.6 SDK and targeting pack/s ARE installed on the build machine:
The first warning suggests that the tests are running on .NET 3.5:Warning: ... effective Platform:X86 and .Net Framework:Framework35 ...
So I explicitly set the vstest.console framework version to 4.5. (At this time 4.6 is not an available option). That resolved these symptoms for me.
To do so edit the Visual Studio Test build step. On the Build tab of the step settings, expand the Advanced section, and set Other console options to /Framework:Framework45.
I found a workaround for the time being that works for now. I modified the settings for the Visual Studio Test build step as follows:
On the Build tab of the step settings, expand the "Advanced" section, and change the VSTest version to "Visual Studio 2013".
That's all it took for me. I tried this because my build was working when I switched to the Hosted build controller, and this was one of the differences between the two in the logs. This is the only thing that I changed, and it worked. I have no idea WHY the Visual Studio 2015 VSTest version doesn't work, but will look into it more and add to this if I find anything...
I experienced this error (specifically the VSTest exit code) after upgrading a test project to 4.6.1. The issue was that the packages.config didn't update the test framework runner pacakge correctly leaving it at .Net 3.5. Updating the target framework resolved the problem.
After installing .Net Framework 3.5 feature everything was OK! See "cottsay" comment at https://github.com/Microsoft/vsts-tasks/issues/572