ademanuele / VSMac-CodeCoverage

A Visual Studio for Mac code coverage extension.
MIT License
75 stars 16 forks source link

Coverage window is blank after VS Update #15

Closed usjpaq closed 2 years ago

usjpaq commented 3 years ago

After a recent update to VS for Mac, the Coverage window (pad) is blank.

About Visual Studio Visual Studio Community 2019 for Mac Version 8.8.10 (build 2) Installation UUID: abf5071e-d0a5-4a9b-99a4-4c3dcae42d80 GTK+ 2.24.23 (Raleigh theme) Xamarin.Mac 6.18.0.23 (d16-6 / 088c73638)

Package version: 612000122

Mono Framework MDK Runtime: Mono 6.12.0.122 (2020-02/c621c35ffa0) (64-bit) Package version: 612000122

Roslyn (Language Service) 3.8.0-5.20519.18+4c195c3ac1974edcefa76774d7a59a2350ec55fa

NuGet Version: 5.8.0.6860

.NET Core SDK SDK: /usr/local/share/dotnet/sdk/5.0.103/Sdks SDK Versions: 5.0.103 5.0.102 3.1.406 3.1.405 3.1.402 MSBuild SDKs: /Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/bin/MSBuild/Current/bin/Sdks

.NET Core Runtime Runtime: /usr/local/share/dotnet/dotnet Runtime Versions: 5.0.3 5.0.2 3.1.12 3.1.11 3.1.8 2.1.23 2.1.22

.NET Core 3.1 SDK SDK: 3.1.406

Xamarin.Profiler Version: 1.6.15.68 Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

Updater Version: 11

Apple Developer Tools Xcode 12.4 (17801) Build 12D4e

Xamarin.Mac Version: 7.4.0.10 (Visual Studio Community) Hash: a4c70e7d0 Branch: xcode12.4 Build date: 2021-02-17 17:40:51-0500

Xamarin.iOS Version: 14.10.0.4 (Visual Studio Community) Hash: 5a05865f6 Branch: xcode12.4 Build date: 2021-01-28 02:30:23-0500

Xamarin Designer Version: 16.8.0.510 Hash: 44e3f3ce9 Branch: remotes/origin/d16-8 Build date: 2020-12-10 00:06:14 UTC

Xamarin.Android Not Installed

Microsoft OpenJDK for Mobile Java SDK: Not Found

Android Designer EPL code available here: https://github.com/xamarin/AndroidDesigner.EPL

Android SDK Manager Version: 16.8.0.32 Hash: 01a7774 Branch: remotes/origin/d16-8 Build date: 2021-01-14 00:34:58 UTC

Android Device Manager Version: 16.8.0.46 Hash: 0a81419 Branch: remotes/origin/d16-8 Build date: 2021-01-14 00:35:22 UTC

Build Information Release ID: 808100002 Git revision: f81ffa2444a28c09f173849935ec9ee0195a5b17 Build date: 2021-02-18 12:02:12-05 Build branch: release-8.8 Xamarin extensions: f81ffa2444a28c09f173849935ec9ee0195a5b17

Operating System Mac OS X 10.16.0 Darwin 20.3.0 Darwin Kernel Version 20.3.0 Thu Jan 21 00:07:06 PST 2021 root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64

Enabled user installed extensions Code Coverage 1.1

Log file excerpt:

Ide.2021-02-15__09-31-42.log 176:INFO [2021-02-15 09:31:47Z]: Add-in loaded: CodeCoverage.Code Coverage 222:2021-02-15 09:31:50.175 VisualStudio[2100:2991004] warning: Could not load signature of CodeCoverage.Coverage.CoverletCoverageProvider:Prepare due to: Could not load file or assembly 'Microsoft.VisualStudio.TestPlatform.ObjectModel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 223:2021-02-15 09:31:50.175 VisualStudio[2100:2991004] warning: Could not load signature of CodeCoverage.Coverage.ICoverageProvider:Prepare due to: Could not load file or assembly 'Microsoft.VisualStudio.TestPlatform.ObjectModel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 227: at CodeCoverage.CoverageWidget..ctor (CodeCoverage.Coverage.ILoggingService loggingService, CodeCoverage.IStatusBar statusBar) [0x00019] in :0 228: at CodeCoverage.Coverage.CoveragePadWidget..ctor () [0x00017] in :0 229: at CodeCoverage.Coverage.CoveragePad.Initialize (MonoDevelop.Ide.Gui.IPadWindow window) [0x00007] in :0

ademanuele commented 3 years ago

Hi,

Thanks for your feedback. This is happening likely due to the extension not being compatable with the latest Visual Studio version.

I have just released version 1.2 of the extension built for the latest Visual Studio. Updating to that extension should fix the issue you're seeing.

Regards, Arthur

usjpaq commented 3 years ago

This issue is resolved with version 1.1 of this plugin and VS for Mac 8.9.2 build 0

rudagaras commented 3 years ago

Hi, same issue with VS 8.9.3 (build 13)

DevaNathan94 commented 3 years ago

Hi, Facing same issue with VS 8.9.3 (build 13)

SandraHicks commented 3 years ago

Also facing this issue with 8.9.5 (Build 4) on MacOS. Actually, it works just after installation and a first restart so the pad appears in the menu. If I restart VS once afterwards, it is blank until I reinstall the plugin.

ademanuele commented 3 years ago

Hello all. Thank you for your feedback on this issue. I am looking into it shortly.

I believe this is caused by the extension being compiled specifying a specific version of the Unit Testing Visual Studio extension. Whereas any version should be fine for this extension.

I'll try and fix this once and for all as this is a recurring issue it seems.

ademanuele commented 3 years ago

Just released a new version (v1.3).

Try it out. Should hopefully fix the issue once and for all.

Will keep this issue open until the next version of VS to see if another update will affect it.

DragonTM commented 3 years ago

I have 1.3 plugin installed and VS 8.9.8. Unfortunately, the coverage pan is blank. It is first time I am using the tool. I hope I did everything right.

ademanuele commented 3 years ago

@DragonTM Thanks for letting me know.

I doubt you did anything wrong. This seems to be a recurring issue I cannot get to the bottom of. Will look into it again and make a new version.

ademanuele commented 3 years ago

Actually, I am having a bit of trouble replicating it this time round.

I have updated my VS to v8.9.8 and installed v1.3 of the extension and it worked right away.

Any chance anyone on this thread could try installing my other Code Distribution extension and let me know if that presents the same issue with the pad being blank after installing? It would help a lot in diagnosing this.

ademanuele commented 3 years ago

New version out.

I have replaced the GTK UI with native OSX UI. I suspect that was having trouble. We'll see if this fixes it.

Qythyx commented 3 years ago

I'm having the same issue, but maybe a little different.

If I install the extension, and restart VS then it shows up fine.

If I restart VS after that then the pad is blank. I can't find anyway to get the Coverage pad to display properly again except to uninstall the extension (restart VS) and reinstall the extension (restart VS again). But then again it only shows once. Successive VS restarts won't show it.

ademanuele commented 3 years ago

Looking a bit closer at @usjpaq 's original post. It looks like the issue is actually that the extension cannot find the TestPlatform library when launching.

Which might make sense if its failing after a Visual Studio update. Will try and include the library as part of the extension and see if that solves it.

martinsmyllie commented 3 years ago

I see the same issue as @Qythyx with the coverage pad being blank. Whilst a VS update could be the catalyst for a problem, a definitely see the problem without an upgrade being involved. I switch between solutions a lot, and wonder if it's related to that. I can always get the extension back by an uninstall & reinstall cycle. @ademanuele are there any specific logs I could look in to help diagnose the problem?

martinsmyllie commented 3 years ago

@ademanuele I don't have the same issue with the Code Distribution Plugin. Also I've been using coverage a lot in the last couple of days, and have had the coverage window go blank without restarting, upgrading or switching solution.

ademanuele commented 3 years ago

Thanks for the feedback guys. I am also wondering if the specific solution that is loaded has something to do with this crash. Its a hard one to analyse as it doesn't seem to happen when VS for Mac is hooked up to the debugger.

@usjpaq has provided very good stack trace info there, not sure how he got it though. Maybe you could enlighten us actually, I'd be curious to know how you got that stack trace out of VS. 😃

Looking at that though, it seems like an assembly can't be found. Which would be quite strange since it works on first launch. I'll look at this issue some more today.

ademanuele commented 3 years ago

So I figured out how to get that stack trace for the exception. Help > Open Log Directory for people who are interested.

And yeah, I have been able to replicate this but not while connected to a debugger. And from the log, it does seem like it can't resolve the assembly. No idea why, that assembly should be offered by Visual Studio itself.

There is only one NuGet package with that name but its not made by Microsoft. This SO thread seems to suggest there's this other Microsoft package that should have the assembly in there. Adding that does not solve the problem.

SO this needs more investigation. Not sure what to try next. Any suggestions are welcome. :D

ademanuele commented 3 years ago

Right.

I think I got to the bottom of it. My suspicion is that Visual Studio does not immediately try to load the extension on startup when the extension is newly installed. It'll launch it a few seconds after.

But then subsequent launches, it'll load it a bit sooner. So I think that is happening is that Visual Studio is loading the Code Coverage extension before loading the Unit Testing extension in which the TestPlatform.ObjectModel assembly is provided.

Couldn't figure out how to solve that ordering if that is indeed the issue.

So I removed the dependency on the TestPlatform.ObjectModel. Thankfully was not such a big job.

New version (v2.0.1) is out now. Download it and let me know if you run into issues again. I've tried launching and relaunching VS a good number of times and the pad launched just fine with the new version.

Alrighty then. Now for a stiff drink. 🥃

Qythyx commented 2 years ago

The fix seems to have worked for me. Since upgrading the problem hasn't happened.

Thanks!!

ademanuele commented 2 years ago

That's good to hear @Qythyx ! 😄

I'll close this issue. I'm fairly confident this issue is resolved now. Thank you everyone for helping resolve it!