0

I have a very simple project in my VSTS account with a few tests. I've added a VsTest step to the build and checked the code coverage box. However, after I run the build, it says "no code coverage results available" and suggests that I add a Visual Studio test build step to my build. But when I add one, it's the same as the VsTest step I already have.

How can I get code coverage from my VSTS build?

EDIT: The test logs are below. There were two portions with a lot of special characters I could not copy and paste.

    2018-05-04T21:51:59.5221025Z ##[section]Starting: VsTest - testAssemblies
    2018-05-04T21:51:59.5227667Z ==============================================================================
    2018-05-04T21:51:59.5227804Z Task         : Visual Studio Test
    2018-05-04T21:51:59.5227968Z Description  : Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test runner. Test frameworks that have a Visual Studio test adapter such as xUnit, NUnit, Chutzpah, etc. can also be run. Tests can be distributed on multiple agents using this task (version 2).
    2018-05-04T21:51:59.5228145Z Version      : 2.5.8
    2018-05-04T21:51:59.5228227Z Author       : Microsoft Corporation
    2018-05-04T21:51:59.5228339Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=835764)
    2018-05-04T21:51:59.5228918Z ==============================================================================
    2018-05-04T21:52:00.6581473Z Run the tests locally using vstest.console.exe
    2018-05-04T21:52:00.6581612Z ========================================================
    2018-05-04T21:52:00.6582115Z Test selector : Test assemblies
    2018-05-04T21:52:00.6582269Z Test assemblies : **\release\**\*.dll
    2018-05-04T21:52:00.6582399Z Test filter criteria : null
    2018-05-04T21:52:00.6582534Z Search folder : D:\a\1\s
    2018-05-04T21:52:00.6582658Z Run settings file : D:\a\1\s
    2018-05-04T21:52:00.6582831Z Run in parallel : false
    2018-05-04T21:52:00.6582954Z Run in isolation : false
    2018-05-04T21:52:00.6584318Z Path to custom adapters : null
    2018-05-04T21:52:00.6584486Z Other console options : null
    2018-05-04T21:52:00.6584627Z Code coverage enabled : true
    2018-05-04T21:52:00.6584910Z Rerun failed tests: false
    2018-05-04T21:52:00.6585116Z VisualStudio version selected for test execution : latest
    2018-05-04T21:52:01.5193379Z ========================================================
    2018-05-04T21:52:01.5908190Z [command]"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" @D:\a\_temp\60315131-4fe5-11e8-9269-e9217bdc2ba0.txt
    2018-05-04T21:52:06.6551385Z Microsoft (R) Test Execution Command Line Tool Version 15.6.2
    2018-05-04T21:52:06.6552014Z Copyright (c) Microsoft Corporation.  All rights reserved.
    2018-05-04T21:52:06.6552213Z 
    2018-05-04T21:52:06.8162937Z vstest.console.exe 
    2018-05-04T21:52:06.8164594Z "D:\a\1\s\TestTesting\TestTesting\bin\Release\net461\Microsoft.VisualStudio.CodeCoverage.Shim.dll"
    2018-05-04T21:52:06.8165659Z "D:\a\1\s\TestTesting\TestTesting\bin\Release\net461\TestTesting.dll"
    2018-05-04T21:52:06.8166614Z "D:\a\1\s\TestTesting\TestTesting\bin\Release\net461\xunit.abstractions.dll"
    2018-05-04T21:52:06.8167552Z "D:\a\1\s\TestTesting\TestTesting\bin\Release\net461\xunit.assert.dll"
    2018-05-04T21:52:06.8168335Z "D:\a\1\s\TestTesting\TestTesting\bin\Release\net461\xunit.core.dll"
    2018-05-04T21:52:06.8169121Z "D:\a\1\s\TestTesting\TestTesting\bin\Release\net461\xunit.execution.desktop.dll"
    2018-05-04T21:52:06.8169879Z "D:\a\1\s\TestTesting\TestTesting\bin\Release\net461\xunit.runner.reporters.net452.dll"
    2018-05-04T21:52:06.8170678Z "D:\a\1\s\TestTesting\TestTesting\bin\Release\net461\xunit.runner.utility.net452.dll"
    2018-05-04T21:52:06.8171460Z "D:\a\1\s\TestTesting\TestTesting\bin\Release\net461\xunit.runner.visualstudio.testadapter.dll"
    2018-05-04T21:52:06.8172221Z "D:\a\1\s\TestTesting\TestTesting\obj\Release\net461\TestTesting.dll"
    2018-05-04T21:52:06.8172936Z /EnableCodeCoverage
    2018-05-04T21:52:06.8173974Z /logger:"trx"
    2018-05-04T21:52:06.8174130Z /TestAdapterPath:"D:\a\1\s"
    2018-05-04T21:52:10.5221260Z Starting test execution, please wait...
    2018-05-04T21:52:10.9446034Z Test run will use DLL(s) built for framework .NETFramework,Version=v4.6.1 and platform X86. Following DLL(s) do not match framework/platform settings.
    2018-05-04T21:52:10.9446506Z xunit.assert.dll is built for Framework 1.1 and Platform AnyCPU.
    2018-05-04T21:52:10.9446876Z xunit.core.dll is built for Framework 1.1 and Platform AnyCPU.
    2018-05-04T21:52:10.9447201Z xunit.execution.desktop.dll is built for Framework 4.5.2 and Platform AnyCPU.
    2018-05-04T21:52:10.9449027Z xunit.runner.reporters.net452.dll is built for Framework 4.5.2 and Platform AnyCPU.
    2018-05-04T21:52:10.9449230Z xunit.runner.utility.net452.dll is built for Framework 4.5.2 and Platform AnyCPU.
    2018-05-04T21:52:10.9449440Z xunit.runner.visualstudio.testadapter.dll is built for Framework 4.5.2 and Platform AnyCPU.
    2018-05-04T21:52:10.9449631Z Go to http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409 for more details on managing these settings.
    2018-05-04T21:52:10.9449774Z 

    [[Uncopyable part here. What I could read spelled out "Microsoft Coverage Collection", followed by a copyright.

    2018-05-04T21:52:31.9257584Z [xUnit.net 00:00:00.9144322]   Discovering: Microsoft.VisualStudio.CodeCoverage.Shim
    2018-05-04T21:52:32.0551765Z [xUnit.net 00:00:01.0599884]   Discovered:  Microsoft.VisualStudio.CodeCoverage.Shim
    2018-05-04T21:52:32.4727660Z [xUnit.net 00:00:01.4776210]   Discovering: TestTesting
    2018-05-04T21:52:32.7346755Z [xUnit.net 00:00:01.7395514]   Discovered:  TestTesting
    2018-05-04T21:52:32.7417690Z [xUnit.net 00:00:01.7468703]   Starting:    TestTesting
    2018-05-04T21:52:33.2084443Z [xUnit.net 00:00:01.9469140]     TestTesting.Tests.Skipped [SKIP]
    2018-05-04T21:52:33.2085046Z [xUnit.net 00:00:01.9471459]       Skipping
    2018-05-04T21:52:33.2085275Z [xUnit.net 00:00:01.9542762]   Finished:    TestTesting
    2018-05-04T21:52:33.2881381Z [xUnit.net 00:00:02.2931214]   Discovering: xunit.abstractions
    2018-05-04T21:52:33.3305957Z [xUnit.net 00:00:02.3357501]   Discovered:  xunit.abstractions
    2018-05-04T21:52:34.0395297Z [xUnit.net 00:00:03.0443103]   Discovering: xunit.runner.reporters.net452
    2018-05-04T21:52:34.1043673Z [xUnit.net 00:00:03.1090663]   Discovered:  xunit.runner.reporters.net452
    2018-05-04T21:52:34.4684448Z Passed   TestTesting.Tests.Passing
    2018-05-04T21:52:34.8614665Z Skipped  TestTesting.Tests.Skipped
    2018-05-04T21:52:34.8620656Z Standard Output Messages:
    2018-05-04T21:52:34.8620971Z  Skipping
    2018-05-04T21:52:34.8625877Z Passed   TestTesting.Tests.NoLongerFailing
    2018-05-04T21:52:36.1389527Z [xUnit.net 00:00:05.1437439]   Discovering: xunit.runner.utility.net452
    2018-05-04T21:52:36.2616608Z [xUnit.net 00:00:05.2660797]   Discovered:  xunit.runner.utility.net452

    [[Uncopyable part repeated here.]]

    2018-05-04T21:52:38.5800594Z Attachments:
    2018-05-04T21:52:38.5800836Z   D:\a\1\s\TestResults\b0d720b3-9bb9-4318-bb6b-7bfa8e404a13\VssAdministrator_factoryvm-az384 2018-05-04 21_52_18.coverage
    2018-05-04T21:52:38.5801023Z 
    2018-05-04T21:52:38.5801196Z Total tests: 3. Passed: 2. Failed: 0. Skipped: 1.
    2018-05-04T21:52:38.5801368Z Test Run Successful.
    2018-05-04T21:52:38.5809597Z Test execution time: 19.0295 Seconds
    2018-05-04T21:52:38.6045339Z Results File: D:\a\1\s\TestResults\VssAdministrator_factoryvm-az384_2018-05-04_21_52_34.trx
    2018-05-04T21:52:38.9702367Z ##[section]Async Command Start: Publish test results
    2018-05-04T21:52:39.1587014Z Publishing test results to test run '3'
    2018-05-04T21:52:39.1587207Z Test results remaining: 3. Test run id: 3
    2018-05-04T21:52:39.6699238Z Published Test Run : https://wjtesttesting.visualstudio.com/MyFirstProject/_TestManagement/Runs#runId=3&_a=runCharts
    2018-05-04T21:52:39.6700510Z ##[section]Async Command End: Publish test results
    2018-05-04T21:52:39.6701395Z ##[section]Finishing: VsTest - testAssemblies

enter image description here

enter image description here

[EDIT 2]: Starian Chen asked for the logs with System.Debug set to true. They go over SO's size limit, so I'm linking to them below:

VSTS build log

VSTS test log

EDIT 3: When I specify the framework in "Other console options" of my VsTest build step:

/framework:"Framework461"

It seems to be unhappy with my version. It gives a list of supported frameworks, the highest of which is "Framework45."

Edit 4: I tried a net452 project, with "Framework45". In that case, the tests did run via Starian Chen's instructions here, just substituting "Framework45" for "netcoreapp2.0". However, there was still no code coverage report.

William Jockusch
  • 26,513
  • 49
  • 182
  • 323
  • What testing framework are you using? Are you seeing test results published? What is the output of the Visual Studio Test task? – Daniel Mann May 04 '18 at 22:37
  • xunit. It works fine in the solution. Two passes and a skipped test. – William Jockusch May 05 '18 at 03:47
  • What do you mean by *"it works fine in the solution"*? Does it work fine **in the Visual Studio Test step**? Please update your question with the log from that step. – Daniel Mann May 05 '18 at 05:21
  • Added. I meant it works fine in my local VS. – William Jockusch May 05 '18 at 11:59
  • Is it a .net core or framework test project? Set system.debug variable to true, then queue build and share the log here. On the other hand, try to refer to this thread and check whether it works fine: https://stackoverflow.com/questions/50126183/adding-code-coverage-of-net-core-xunit-project-to-vsts-build – starian chen-MSFT May 07 '18 at 04:09
  • @starianchen-MSFT I've linked to the files at the bottom of the post. – William Jockusch May 07 '18 at 15:52
  • 1
    Can you reproduce this issue with a new project? If so, you can share the sample project on the OneDrive. On the other hand, with .net framework test project, you don't need to specify framework and vstest.console.exe path in VS Test task – starian chen-MSFT May 08 '18 at 02:42
  • Do you have access to this file? D:\a\1\s\TestResults\306f4176-7320-454c-bfaf-13bf1b2648b8\VssAdministrator_factoryvm-az386 2018-05-07 15_36_36.coverage - To check if something is in there. So we can start to eliminate possibilities – Rodrigo Werlang May 08 '18 at 12:05
  • I've now published the project on Github. It's very close to a "new project"; I wrote a single class that fits on a sinigle screen. https://github.com/verybadcat/VstsTestTesting And no, I don't have the .coverage file; presumably I could try get it by doing an artifact drop – William Jockusch May 08 '18 at 21:02
  • @starianchen-MSFT When I removed the framework and vstest.console.exe, it does have code coverage results that I can download, and they are also in the Web interface. So apparently it's solved. – William Jockusch May 08 '18 at 21:08
  • @WilliamJockusch Great! I post an answer and you can accept as answer. – starian chen-MSFT May 09 '18 at 04:20

1 Answers1

2

With .Net framework test project, you don’t need to specify framework and vstest.console.exe path in Visual Studio Test task.

starian chen-MSFT
  • 33,174
  • 2
  • 29
  • 53