diff --git a/README.md b/README.md
index d4be19b..4f9f377 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,10 @@ This is an open source project, join!
Twitter: @GanzhaVitalii
+Version 1.9:
+* Fixed defect #8: VS 2015 stops working when looking at Test Manager Window
+
+
Version 1.8:
* Users now will be able to select their own sounds (Issue #5)
* There will be a different sound when any of the tests have failed (Issue #7)
diff --git a/VsDingExtensionProject/VsDingExtensionProject.csproj b/VsDingExtensionProject/VsDingExtensionProject.csproj
index 782b15e..475afb6 100644
--- a/VsDingExtensionProject/VsDingExtensionProject.csproj
+++ b/VsDingExtensionProject/VsDingExtensionProject.csproj
@@ -5,11 +5,6 @@
12.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
-
-
-
- 12.0
Program
$(DevEnvDir)\devenv.exe
/rootsuffix Exp
@@ -66,11 +61,13 @@
true
-
+
$(DevEnvDir)\CommonExtensions\Microsoft\TestWindow\Microsoft.VisualStudio.TestWindow.Interfaces.dll
+ False
@@ -218,10 +215,7 @@
-
- Always
- true
-
+
Always
diff --git a/VsDingExtensionProject/VsDingExtensionProjectPackage.cs b/VsDingExtensionProject/VsDingExtensionProjectPackage.cs
index 60bfb9e..bdca97d 100644
--- a/VsDingExtensionProject/VsDingExtensionProjectPackage.cs
+++ b/VsDingExtensionProject/VsDingExtensionProjectPackage.cs
@@ -10,7 +10,6 @@ namespace VitaliiGanzha.VsDingExtension
using EnvDTE80;
using Microsoft.VisualStudio.ComponentModelHost;
using Microsoft.VisualStudio.Shell;
- using Microsoft.VisualStudio.TestWindow.Controller;
using Microsoft.VisualStudio.TestWindow.Extensibility;
using Task = System.Threading.Tasks.Task;
@@ -161,16 +160,30 @@ namespace VitaliiGanzha.VsDingExtension
{
if (Options.IsBeepOnTestComplete && operationStateChangedEventArgs.State.HasFlag(TestOperationStates.TestExecutionFinished))
{
- var testOperation = ((TestRunRequest)operationStateChangedEventArgs.Operation);
- var isTestsFailed = testOperation.DominantTestState == TestState.Failed;
- var eventType = isTestsFailed? EventType.TestsCompletedFailure : EventType.TestsCompletedSuccess;
- if (Options.IsBeepOnTestFailed && isTestsFailed)
+ try
{
- HandleEventSafe(eventType, "Test execution failed!", ToolTipIcon.Error);
+ // Issue #8: VS 2015 stops working when looking at Test Manager Window #8
+ // This extention can't take dependency on Microsoft.VisualStudio.TestWindow.Core.dll
+ // Because it will crash VS 2015. But DominantTestState is defined in that assembly.
+ // So as a workaround - cast it to dynamic (ewww, but alternative - to create new project/build and publish it separately.)
+ var testOperation = (dynamic)(operationStateChangedEventArgs.Operation);
+ var dominantTestState = (TestState)testOperation.DominantTestState;
+ var isTestsFailed = dominantTestState == TestState.Failed;
+ var eventType = isTestsFailed ? EventType.TestsCompletedFailure : EventType.TestsCompletedSuccess;
+ if (Options.IsBeepOnTestFailed && isTestsFailed)
+ {
+ HandleEventSafe(eventType, "Test execution failed!", ToolTipIcon.Error);
+ }
+ else
+ {
+ HandleEventSafe(eventType, "Test execution has been completed.");
+ }
}
- else
+ catch (Exception ex)
{
- HandleEventSafe(eventType, "Test execution has been completed.");
+ ActivityLog.LogError(GetType().FullName, ex.Message);
+ // Unable to get dominate test status, beep default sound for test
+ HandleEventSafe(EventType.TestsCompletedSuccess, "Test execution has been completed.");
}
}
}
diff --git a/VsDingExtensionProject/source.extension.vsixmanifest b/VsDingExtensionProject/source.extension.vsixmanifest
index 5c1538c..6e18dfa 100644
--- a/VsDingExtensionProject/source.extension.vsixmanifest
+++ b/VsDingExtensionProject/source.extension.vsixmanifest
@@ -1,7 +1,7 @@
-
+
Visual Studio Ding extension
This small extension will play notification sounds when following events occur:
- Build Complete