Skip to content

Commit 31a3cfb

Browse files
committed
Updated AdapterUtilities package version
1 parent 6c7d476 commit 31a3cfb

File tree

17 files changed

+90
-44
lines changed

17 files changed

+90
-44
lines changed

scripts/build/TestFx.Versions.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
4-
<TestPlatformVersion Condition=" '$(TestPlatformVersion)' == '' ">16.10.0-release-20210330-02</TestPlatformVersion>
4+
<TestPlatformVersion Condition=" '$(TestPlatformVersion)' == '' ">16.10.0-release-20210421-08</TestPlatformVersion>
55
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
66
</PropertyGroup>
77
</Project>

src/Adapter/MSTest.CoreAdapter/Discovery/TypeEnumerator.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,7 @@ internal UnitTestElement GetTestFromMethod(MethodInfo method, bool isDeclaredInT
201201
testElement.Ignored = this.reflectHelper.IsAttributeDefined(method, typeof(IgnoreAttribute), false);
202202

203203
// Get Deployment items if any.
204-
testElement.DeploymentItems = PlatformServiceProvider.Instance.TestDeployment.GetDeploymentItems(
205-
method,
206-
this.type,
207-
warnings);
204+
testElement.DeploymentItems = PlatformServiceProvider.Instance.TestDeployment.GetDeploymentItems(method, this.type, warnings);
208205

209206
// get DisplayName from TestMethodAttribute
210207
var testMethodAttribute = this.reflectHelper.GetCustomAttribute(method, typeof(TestMethodAttribute)) as TestMethodAttribute;

src/Adapter/MSTest.CoreAdapter/Execution/TestMethodRunner.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -415,8 +415,10 @@ private UTF.TestResult[] ExecuteTest()
415415
{
416416
return new[]
417417
{
418-
new UTF.TestResult() {
419-
TestFailureException = new Exception(string.Format(CultureInfo.CurrentCulture, Resource.UTA_ExecuteThrewException, ex?.Message, ex?.StackTrace), ex) }
418+
new UTF.TestResult()
419+
{
420+
TestFailureException = new Exception(string.Format(CultureInfo.CurrentCulture, Resource.UTA_ExecuteThrewException, ex?.Message, ex?.StackTrace), ex)
421+
}
420422
};
421423
}
422424
}

src/Adapter/MSTest.CoreAdapter/Extensions/TestCaseExtensions.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ internal static class TestCaseExtensions
3737
attributes: TestPropertyAttributes.Hidden,
3838
owner: typeof(TestCase));
3939

40+
internal static readonly TestProperty HierarchyProperty = TestProperty.Register(
41+
id: HierarchyConstants.HierarchyPropertyId,
42+
label: HierarchyConstants.HierarchyLabel,
43+
category: string.Empty,
44+
description: string.Empty,
45+
valueType: typeof(string[]),
46+
validateValueCallback: null,
47+
attributes: TestPropertyAttributes.Immutable,
48+
owner: typeof(TestCase));
49+
4050
/// <summary>
4151
/// The to unit test element.
4252
/// </summary>
@@ -59,7 +69,7 @@ internal static UnitTestElement ToUnitTestElement(this TestCase testCase, string
5969
TestMethod testMethod;
6070
if (testCase.ContainsManagedMethodAndType())
6171
{
62-
testMethod = new TestMethod(testCase.GetManagedType(), testCase.GetManagedMethod(), name, testClassName, source, isAsync);
72+
testMethod = new TestMethod(testCase.GetManagedType(), testCase.GetManagedMethod(), testCase.GetHierarchy(), name, testClassName, source, isAsync);
6373
}
6474
else
6575
{
@@ -139,5 +149,9 @@ internal static UnitTestElement ToUnitTestElement(this TestCase testCase, string
139149
internal static void SetManagedMethod(this TestCase testCase, string value) => testCase.SetPropertyValue<string>(ManagedMethodProperty, value);
140150

141151
internal static bool ContainsManagedMethodAndType(this TestCase testCase) => !string.IsNullOrWhiteSpace(testCase.GetManagedMethod()) && !string.IsNullOrWhiteSpace(testCase.GetManagedType());
152+
153+
internal static string[] GetHierarchy(this TestCase testCase) => testCase.GetPropertyValue<string[]>(HierarchyProperty, null);
154+
155+
internal static void SetHierarchy(this TestCase testCase, params string[] value) => testCase.SetPropertyValue<string[]>(HierarchyProperty, value);
142156
}
143157
}

src/Adapter/MSTest.CoreAdapter/ObjectModel/TestMethod.cs

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@
44
namespace Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel
55
{
66
using System;
7+
using System.Collections.Generic;
8+
using System.Collections.ObjectModel;
79
using System.Diagnostics;
810
using System.Reflection;
911

12+
using Microsoft.TestPlatform.AdapterUtilities;
1013
using Microsoft.TestPlatform.AdapterUtilities.ManagedNameUtilities;
1114

1215
using MSTestAdapter.PlatformServices.Interface.ObjectModel;
@@ -17,18 +20,15 @@ namespace Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel
1720
[Serializable]
1821
public sealed class TestMethod : ITestMethod
1922
{
20-
#region Fields
21-
2223
/// <summary>
23-
/// Member field for the property 'DeclaringClassFullName'
24+
/// Number of elements in <see cref="Hierarchy"/>.
2425
/// </summary>
25-
private string declaringClassFullName = null;
26+
public const int TotalHierarchyLevels = HierarchyConstants.Levels.TotalLevelCount;
2627

27-
/// <summary>
28-
/// Member field for the property 'DeclaringAssemblyName'
29-
/// </summary>
28+
#region Fields
29+
private IReadOnlyCollection<string> hierarchy;
30+
private string declaringClassFullName = null;
3031
private string declaringAssemblyName = null;
31-
3232
#endregion
3333

3434
public TestMethod(string name, string fullClassName, string assemblyName, bool isAsync)
@@ -45,6 +45,12 @@ public TestMethod(string name, string fullClassName, string assemblyName, bool i
4545
this.FullClassName = fullClassName;
4646
this.AssemblyName = assemblyName;
4747
this.IsAsync = isAsync;
48+
49+
var hierarchy = new string[HierarchyConstants.Levels.TotalLevelCount];
50+
hierarchy[HierarchyConstants.Levels.NamespaceIndex] = fullClassName;
51+
hierarchy[HierarchyConstants.Levels.ClassIndex] = name;
52+
53+
this.hierarchy = new ReadOnlyCollection<string>(hierarchy);
4854
}
4955

5056
internal TestMethod(MethodBase method, string name, string fullClassName, string assemblyName, bool isAsync)
@@ -55,23 +61,25 @@ internal TestMethod(MethodBase method, string name, string fullClassName, string
5561
throw new ArgumentNullException(nameof(method));
5662
}
5763

58-
ManagedNameHelper.GetManagedName(method, out var managedType, out var managedMethod);
64+
ManagedNameHelper.GetManagedName(method, out var managedType, out var managedMethod, out var hierarchyValues);
5965
this.ManagedTypeName = managedType;
6066
this.ManagedMethodName = managedMethod;
67+
this.hierarchy = new ReadOnlyCollection<string>(hierarchyValues);
6168
}
6269

63-
internal TestMethod(string managedTypeName, string managedMethodName, string name, string fullClassName, string assemblyName, bool isAsync)
70+
internal TestMethod(string managedTypeName, string managedMethodName, string[] hierarchyValues, string name, string fullClassName, string assemblyName, bool isAsync)
6471
: this(name, fullClassName, assemblyName, isAsync)
6572
{
6673
this.ManagedTypeName = managedTypeName;
6774
this.ManagedMethodName = managedMethodName;
75+
this.hierarchy = new ReadOnlyCollection<string>(hierarchyValues);
6876
}
6977

7078
/// <inheritdoc />
71-
public string Name { get; private set; }
79+
public string Name { get; }
7280

7381
/// <inheritdoc />
74-
public string FullClassName { get; private set; }
82+
public string FullClassName { get; }
7583

7684
/// <summary>
7785
/// Gets or sets the declaring assembly full name. This will be used while getting navigation data.
@@ -127,6 +135,9 @@ public string DeclaringClassFullName
127135
/// <inheritdoc />
128136
public bool HasManagedMethodAndTypeProperties => !string.IsNullOrWhiteSpace(this.ManagedTypeName) && !string.IsNullOrWhiteSpace(this.ManagedMethodName);
129137

138+
/// <inheritdoc />
139+
public IReadOnlyCollection<string> Hierarchy => this.hierarchy;
140+
130141
/// <summary>
131142
/// Gets or sets type of dynamic data if any
132143
/// </summary>
@@ -137,6 +148,11 @@ public string DeclaringClassFullName
137148
/// </summary>
138149
internal object[] Data { get; set; }
139150

151+
/// <summary>
152+
/// Gets or sets the test group set during discovery
153+
/// </summary>
154+
internal string TestGroup { get; set; }
155+
140156
/// <summary>
141157
/// Gets or sets the display name set during discovery
142158
/// </summary>

src/Adapter/MSTest.CoreAdapter/ObjectModel/UnitTestElement.cs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ namespace Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel
88
using System.Diagnostics;
99
using System.Globalization;
1010
using System.IO;
11+
using System.Linq;
1112

13+
using Microsoft.TestPlatform.AdapterUtilities;
1214
using Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Extensions;
1315
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
14-
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities;
1516

1617
/// <summary>
1718
/// The unit test element.
@@ -143,6 +144,12 @@ internal TestCase ToTestCase()
143144
testCase.SetPropertyValue(TestAdapter.Constants.TestClassNameProperty, this.TestMethod.FullClassName);
144145
}
145146

147+
var hierarchy = this.TestMethod.Hierarchy;
148+
if (hierarchy != null && hierarchy.Count > 0)
149+
{
150+
testCase.SetHierarchy(hierarchy.ToArray());
151+
}
152+
146153
// Set declaring type if present so the correct method info can be retrieved
147154
if (this.TestMethod.DeclaringClassFullName != null)
148155
{
@@ -222,25 +229,25 @@ internal TestCase ToTestCase()
222229
{
223230
}
224231

225-
var testFullId = new System.Text.StringBuilder();
226-
testFullId.Append(testCase.ExecutorUri?.ToString());
227-
testFullId.Append(fileName);
232+
var idProvider = new TestIdProvider();
233+
idProvider.AppendString(testCase.ExecutorUri?.ToString());
234+
idProvider.AppendString(fileName);
228235
if (this.TestMethod.HasManagedMethodAndTypeProperties)
229236
{
230-
testFullId.Append(this.TestMethod.ManagedTypeName);
231-
testFullId.Append(this.TestMethod.ManagedMethodName);
237+
idProvider.AppendString(this.TestMethod.ManagedTypeName);
238+
idProvider.AppendString(this.TestMethod.ManagedMethodName);
232239
}
233240
else
234241
{
235-
testFullId.Append(testCase.FullyQualifiedName);
242+
idProvider.AppendString(testCase.FullyQualifiedName);
236243
}
237244

238245
if (this.TestMethod.DataType != DynamicDataType.None)
239246
{
240-
testFullId.Append(testCase.DisplayName);
247+
idProvider.AppendString(testCase.DisplayName);
241248
}
242249

243-
testCase.Id = EqtHash.GuidFromString(testFullId.ToString());
250+
testCase.Id = idProvider.GetId();
244251

245252
return testCase;
246253
}

src/Adapter/PlatformServices.Desktop/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="MicroBuild.Core" version="0.2.0" targetFramework="net451" developmentDependency="true" />
4-
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210330-02" targetFramework="net45" />
4+
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210421-08" targetFramework="net45" />
55
<package id="NuGet.Frameworks" version="5.0.0" targetFramework="net45" />
66
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="net45" developmentDependency="true" />
77
<package id="System.Collections.Immutable" version="1.5.0" targetFramework="net45" />

src/Adapter/PlatformServices.Interface/ObjectModel/ITestMethod.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
namespace Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ObjectModel
55
{
6+
using System.Collections.Generic;
7+
68
/// <summary>
79
/// TestMethod structure that is shared between adapter and platform services only.
810
/// </summary>
@@ -55,5 +57,13 @@ public interface ITestMethod
5557
/// Gets a value indicating whether both <see cref="ManagedTypeName"/> and <see cref="ManagedMethodName"/> are not null or whitespace.
5658
/// </summary>
5759
bool HasManagedMethodAndTypeProperties { get; }
60+
61+
/// <summary>
62+
/// Gets the test case hierarchy parsed by the adapter.
63+
/// </summary>
64+
/// <remarks>
65+
/// Contains four items in order: Namespace, class name, test group, display name.
66+
/// </remarks>
67+
IReadOnlyCollection<string> Hierarchy { get; }
5868
}
5969
}

src/Adapter/PlatformServices.Interface/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="MicroBuild.Core" version="0.2.0" targetFramework="portable45-net45+win8+wp8+wpa81" developmentDependency="true" />
4-
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210330-02" targetFramework="portable45-net45+win8+wp8+wpa81" />
4+
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210421-08" targetFramework="portable45-net45+win8+wp8+wpa81" />
55
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="portable45-net45+win8+wp8+wpa81" developmentDependency="true" />
66
<package id="System.Collections" version="4.3.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
77
<package id="System.ComponentModel" version="4.3.0" targetFramework="portable45-net45+win8+wp8+wpa81" />

src/Adapter/PlatformServices.Portable/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="MicroBuild.Core" version="0.2.0" targetFramework="portable45-net45+win8+wp8+wpa81" developmentDependency="true" />
4-
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210330-02" targetFramework="portable45-net45+win8+wp8+wpa81" />
4+
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210421-08" targetFramework="portable45-net45+win8+wp8+wpa81" />
55
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="portable45-net45+win8+wp8+wpa81" developmentDependency="true" />
66
<package id="System.Collections" version="4.3.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
77
<package id="System.ComponentModel" version="4.3.0" targetFramework="portable45-net45+win8+wp8+wpa81" />

test/ComponentTests/PlatformServices.Desktop.Component.Tests/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Castle.Core" version="4.2.1" targetFramework="net451" />
4-
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210330-02" targetFramework="net451" />
4+
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210421-08" targetFramework="net451" />
55
<package id="Moq" version="4.8.2" targetFramework="net451" />
66
<package id="NuGet.Frameworks" version="5.0.0" targetFramework="net451" />
77
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="net451" developmentDependency="true" />

test/E2ETests/Automation.CLI/CLITestBase.common.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public partial class CLITestBase
1919
private const string PackagesFolder = "packages";
2020

2121
// This value is automatically updated by "build.ps1" script.
22-
private const string TestPlatformCLIPackage = @"Microsoft.TestPlatform.16.10.0-release-20210330-02";
22+
private const string TestPlatformCLIPackage = @"Microsoft.TestPlatform.16.10.0-release-20210421-08";
2323
private const string VstestConsoleRelativePath = @"tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe";
2424

2525
/// <summary>

test/E2ETests/Automation.CLI/packages.config

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Microsoft.TestPlatform" version="16.10.0-release-20210330-02" targetFramework="net46" />
4-
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210330-02" targetFramework="net46" />
5-
<package id="Microsoft.TestPlatform.TranslationLayer" version="16.10.0-release-20210330-02" targetFramework="net46" />
6-
<package id="Microsoft.TestPlatform.AdapterUtilities" version="16.10.0-release-20210330-02" targetFramework="net452" />
3+
<package id="Microsoft.TestPlatform" version="16.10.0-release-20210421-08" targetFramework="net46" />
4+
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210421-08" targetFramework="net46" />
5+
<package id="Microsoft.TestPlatform.TranslationLayer" version="16.10.0-release-20210421-08" targetFramework="net46" />
6+
<package id="Microsoft.TestPlatform.AdapterUtilities" version="16.10.0-release-20210421-08" targetFramework="net452" />
77
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net46" />
88
<package id="NuGet.Frameworks" version="5.0.0" targetFramework="net46" />
99
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="net46" developmentDependency="true" />

test/UnitTests/MSTest.CoreAdapter.Unit.Tests/packages.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<packages>
33
<package id="Castle.Core" version="3.3.3" targetFramework="net452" />
44
<package id="FluentAssertions" version="5.10.3" targetFramework="net452" />
5-
<package id="Microsoft.TestPlatform.AdapterUtilities" version="16.10.0-release-20210330-02" targetFramework="net452" />
6-
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210330-02" targetFramework="net452" />
5+
<package id="Microsoft.TestPlatform.AdapterUtilities" version="16.10.0-release-20210421-08" targetFramework="net452" />
6+
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210421-08" targetFramework="net452" />
77
<package id="Moq" version="4.5.21" targetFramework="net452" />
88
<package id="NuGet.Frameworks" version="5.0.0" targetFramework="net452" />
99
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="net452" developmentDependency="true" />

test/UnitTests/PlatformServices.Desktop.Unit.Tests/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Castle.Core" version="3.3.3" targetFramework="net451" />
4-
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210330-02" targetFramework="net451" />
4+
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210421-08" targetFramework="net451" />
55
<package id="Moq" version="4.5.21" targetFramework="net451" />
66
<package id="NuGet.Frameworks" version="5.0.0" targetFramework="net451" />
77
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="net451" developmentDependency="true" />

test/UnitTests/PlatformServices.Portable.Unit.Tests/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Castle.Core" version="3.3.3" targetFramework="net452" />
4-
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210330-02" targetFramework="net452" />
4+
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210421-08" targetFramework="net452" />
55
<package id="Moq" version="4.5.21" targetFramework="net452" />
66
<package id="NuGet.Frameworks" version="5.0.0" targetFramework="net452" />
77
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="net452" developmentDependency="true" />

test/UnitTests/PlatformServices.Universal.Unit.Tests/packages.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Castle.Core" version="4.0.0" targetFramework="net452" />
4-
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210330-02" targetFramework="net452" />
5-
<package id="Microsoft.TestPlatform.AdapterUtilities" version="16.10.0-release-20210330-02" targetFramework="net452" />
4+
<package id="Microsoft.TestPlatform.ObjectModel" version="16.10.0-release-20210421-08" targetFramework="net452" />
5+
<package id="Microsoft.TestPlatform.AdapterUtilities" version="16.10.0-release-20210421-08" targetFramework="net452" />
66
<package id="Moq" version="4.7.8" targetFramework="net452" />
77
<package id="NuGet.Frameworks" version="5.0.0" targetFramework="net452" />
88
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="net452" developmentDependency="true" />

0 commit comments

Comments
 (0)