Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <llsan@microsoft.com>2018-12-17 14:40:23 +0300
committerGitHub <noreply@github.com>2018-12-17 14:40:23 +0300
commit1f8b4d40ef857c95e521eacd6213e814e6ab15fe (patch)
treea25bb54bfc7ec17ca1dd1339006bc44ea1a8b748 /main/src/addins/MonoDevelop.UnitTesting
parent4501a65d519f5b8c34c5371f1531ab8ead0dcbf5 (diff)
parentd98e94c6ea8600e87803f35dd9a06aab15302d46 (diff)
Merge pull request #6735 from mono/master-vsts729387
Fixes VSTS Bug 729387: [Feedback] Broken text editor unit test
Diffstat (limited to 'main/src/addins/MonoDevelop.UnitTesting')
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.Tests/MonoDevelop.UnitTesting.Tests/VsTestUnitTestTests.cs11
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestNamespaceTestGroup.cs2
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestTestClass.cs7
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestUnitTest.cs1
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs18
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs11
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestService.cs30
7 files changed, 65 insertions, 15 deletions
diff --git a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.Tests/MonoDevelop.UnitTesting.Tests/VsTestUnitTestTests.cs b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.Tests/MonoDevelop.UnitTesting.Tests/VsTestUnitTestTests.cs
index 8fa4dcb98d..eb3a3f208c 100644
--- a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.Tests/MonoDevelop.UnitTesting.Tests/VsTestUnitTestTests.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.Tests/MonoDevelop.UnitTesting.Tests/VsTestUnitTestTests.cs
@@ -85,6 +85,17 @@ namespace MonoDevelop.UnitTesting.Tests
grp.AddTest (new MyVsTestUnitTest ("Test", "Test", "TestCase1"));
grp.AddTest (new MyVsTestUnitTest ("Test", "Test.Test", "TestCase1"));
}
+
+ /// <summary>
+ /// VSTS Bug 729387: [Feedback] Broken text editor unit test #6735
+ /// </summary>
+ [Test]
+ public void TestVSTS729387 ()
+ {
+ var test = CreateVsUnitTest ("Namespace.MyTest.Test1", "Test1");
+ Assert.AreEqual ("Namespace.MyTest.Test1", test.TestSourceCodeDocumentId);
+ }
+
class MyVsTestUnitTest : VsTestUnitTest
{
public MyVsTestUnitTest (string displayName, string fixtureTypeNamespace, string fixtureTypeName) : base(displayName)
diff --git a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestNamespaceTestGroup.cs b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestNamespaceTestGroup.cs
index c0de605ff3..60c1c951a0 100644
--- a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestNamespaceTestGroup.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestNamespaceTestGroup.cs
@@ -67,7 +67,7 @@ namespace MonoDevelop.UnitTesting.VsTest
string childNamespace = VsTestTest.GetChildNamespace (FixtureTypeNamespace);
if (string.IsNullOrEmpty (childNamespace)) {
if (currentClass == null || currentClass.FixtureTypeName != VsTestTest.FixtureTypeName) {
- currentClass = new VsTestTestClass (testRunner, Project, VsTestTest.FixtureTypeName);
+ currentClass = new VsTestTestClass (testRunner, Project, VsTestTest);
Tests.Add (currentClass);
}
currentClass.Tests.Add (VsTestTest);
diff --git a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestTestClass.cs b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestTestClass.cs
index f008443107..1cd77f293a 100644
--- a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestTestClass.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestTestClass.cs
@@ -37,12 +37,13 @@ namespace MonoDevelop.UnitTesting.VsTest
public Project Project { get; private set; }
IVsTestTestRunner testRunner;
- public VsTestTestClass (IVsTestTestRunner testRunner, Project project, string name)
- : base (name)
+ public VsTestTestClass (IVsTestTestRunner testRunner, Project project, VsTestUnitTest vsTestUnit)
+ : base (vsTestUnit.FixtureTypeName)
{
this.Project = project;
this.testRunner = testRunner;
- FixtureTypeName = name;
+ FixtureTypeName = vsTestUnit.FixtureTypeName;
+ TestSourceCodeDocumentId = string.IsNullOrEmpty (vsTestUnit.FixtureTypeNamespace) ? FixtureTypeName : vsTestUnit.FixtureTypeNamespace + "." + FixtureTypeName;
}
protected override UnitTestResult OnRun (TestContext testContext)
diff --git a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestUnitTest.cs b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestUnitTest.cs
index 64af96eb9e..24a5e9dcc9 100644
--- a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestUnitTest.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.VsTest/VsTestUnitTest.cs
@@ -60,6 +60,7 @@ namespace MonoDevelop.UnitTesting.VsTest
void Init ()
{
TestId = test.Id.ToString ();
+ TestSourceCodeDocumentId = test.FullyQualifiedName;
if (!string.IsNullOrEmpty (test.CodeFilePath))
sourceCodeLocation = new SourceCodeLocation (test.CodeFilePath, test.LineNumber, 0);
else {
diff --git a/main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs b/main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs
index d1e5822717..58449a06a8 100644
--- a/main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs
@@ -152,7 +152,7 @@ namespace MonoDevelop.UnitTesting
public override Xwt.Drawing.Image GetStatusIcon (string unitTestIdentifier, string caseId = null)
{
- var test = UnitTestService.SearchTestById (unitTestIdentifier + caseId);
+ var test = UnitTestService.SearchTestByDocumentId (unitTestIdentifier + caseId);
if (test != null)
return test.StatusIcon;
return TestStatusIcon.None;
@@ -160,7 +160,7 @@ namespace MonoDevelop.UnitTesting
public override bool IsFailure (string unitTestIdentifier, string caseId = null)
{
- var test = UnitTestService.SearchTestById (unitTestIdentifier + caseId);
+ var test = UnitTestService.SearchTestByDocumentId (unitTestIdentifier + caseId);
if (test != null) {
var result = test.GetLastResult ();
if (result != null)
@@ -171,7 +171,7 @@ namespace MonoDevelop.UnitTesting
public override string GetMessage (string unitTestIdentifier, string caseId = null)
{
- var test = UnitTestService.SearchTestById (unitTestIdentifier + caseId);
+ var test = UnitTestService.SearchTestByDocumentId (unitTestIdentifier + caseId);
if (test != null) {
var result = test.GetLastResult ();
if (result != null)
@@ -182,7 +182,7 @@ namespace MonoDevelop.UnitTesting
public override bool HasResult (string unitTestIdentifier, string caseId = null)
{
- return UnitTestService.SearchTestById (unitTestIdentifier + caseId) != null;
+ return UnitTestService.SearchTestByDocumentId (unitTestIdentifier + caseId) != null;
}
public override void PopupContextMenu (UnitTestLocation unitTest, int x, int y)
@@ -240,7 +240,7 @@ namespace MonoDevelop.UnitTesting
var label = "Test" + id;
string tooltip = null;
- var test = UnitTestService.SearchTestById (unitTest.UnitTestIdentifier + id);
+ var test = UnitTestService.SearchTestByDocumentId (unitTest.UnitTestIdentifier + id);
if (test != null) {
var result = test.GetLastResult ();
if (result != null && result.IsFailure) {
@@ -292,7 +292,7 @@ namespace MonoDevelop.UnitTesting
bool TimeoutHandler ()
{
- var test = UnitTestService.SearchTestById (testCase);
+ var test = UnitTestService.SearchTestByDocumentId (testCase);
if (test != null) {
RunTest (test);
timeoutHandler = 0;
@@ -308,7 +308,7 @@ namespace MonoDevelop.UnitTesting
IdeApp.ProjectOperations.IsRunning (IdeApp.ProjectOperations.CurrentSelectedSolution))
return;
- var foundTest = UnitTestService.SearchTestById (testCase);
+ var foundTest = UnitTestService.SearchTestByDocumentId (testCase);
if (foundTest != null) {
RunTest (foundTest);
return;
@@ -321,7 +321,7 @@ namespace MonoDevelop.UnitTesting
await UnitTestService.RefreshTests (CancellationToken.None);
}
- foundTest = UnitTestService.SearchTestById (testCase);
+ foundTest = UnitTestService.SearchTestByDocumentId (testCase);
if (foundTest != null)
RunTest (foundTest);
else
@@ -330,7 +330,7 @@ namespace MonoDevelop.UnitTesting
internal void Select (object sender, EventArgs e)
{
- var test = UnitTestService.SearchTestById (testCase);
+ var test = UnitTestService.SearchTestByDocumentId (testCase);
if (test == null)
return;
UnitTestService.CurrentSelectedTest = test;
diff --git a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs
index cf5f615d0c..da956f00ae 100644
--- a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs
@@ -238,7 +238,16 @@ namespace MonoDevelop.UnitTesting
get;
protected set;
}
-
+
+ /// <summary>
+ /// Used for the text editor integration to identify the source code member connected to the unit test.
+ /// </summary>
+ public string TestSourceCodeDocumentId {
+ get;
+ protected set;
+ }
+
+
public string FullName {
get {
if (parent != null)
diff --git a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestService.cs b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestService.cs
index aaa2daa49d..9f89cee925 100644
--- a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestService.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestService.cs
@@ -243,6 +243,16 @@ namespace MonoDevelop.UnitTesting
return null;
}
+ public static UnitTest SearchTestByDocumentId (string id)
+ {
+ foreach (UnitTest t in RootTests) {
+ UnitTest r = SearchTestByDocumentId (t, id);
+ if (r != null)
+ return r;
+ }
+ return null;
+ }
+
static UnitTest SearchTest (UnitTest test, string fullName)
{
@@ -270,7 +280,7 @@ namespace MonoDevelop.UnitTesting
return test;
UnitTestGroup group = test as UnitTestGroup;
- if (group != null) {
+ if (group != null) {
foreach (UnitTest t in group.Tests) {
UnitTest result = SearchTestById (t, id);
if (result != null)
@@ -280,6 +290,24 @@ namespace MonoDevelop.UnitTesting
return null;
}
+ static UnitTest SearchTestByDocumentId (UnitTest test, string id)
+ {
+ if (test == null)
+ return null;
+ if (test.TestSourceCodeDocumentId == id)
+ return test;
+
+ UnitTestGroup group = test as UnitTestGroup;
+ if (group != null) {
+ foreach (UnitTest t in group.Tests) {
+ UnitTest result = SearchTestByDocumentId (t, id);
+ if (result != null)
+ return result;
+ }
+ }
+ return null;
+ }
+
public static UnitTest FindRootTest (WorkspaceObject item)
{
return FindRootTest (RootTests, item);