Skip to content

Move FQN related code into a separate NuGet package  #2708

@Haplois

Description

@Haplois

Description

As part of supporting new TestCase properties like ManagedType and ManagedClass, some changes introduced to Microsoft.TestPlatform.ObjectModel. (#2611) These changes broke the compatibility of the Test Platform with earlier Visual Studio releases.

We need to move new TestCase properties, Managed Name Utilities, Modern Test Id generation logic to a separate assembly and ultimately into a new NuGet package, preferably without any dependencies into the Test Platform itself.

We need to consider supporting the source-based test discovery support extension and providing support in a second new NuGet package since it depends on Roslyn.

This change should fix microsoft/testfx#748.

Steps

  • Move the Microsoft.TestPlatform.ObjectModel/ManagedNameUtilities into the new NuGet package. The New NuGet package is called Microsoft.TestPlatform.AdapterUtilities; it has no dependencies to the Test Platform itself. It only contains constants and helper methods.
  • Remove hardcoded support and .ctors from TestCase, and TestFx, and move it to the new NuGet package
  • Provide a way to customize TestId generation by the adapter
  • Make sure the TestPlatform is compatible with Visual Studio 16.8 (ManagedName and backward compatibility fixes. testfx#765)
  • Implement the new feature in MSTest (ManagedName and backward compatibility fixes. testfx#765)
  • Figure out how to support hierarchies in TestCase (Namespace, Class, TestGroup, DisplayName, DataRow) (Added constants for hierarchical naming #2724)
  • Update the documentation, provide implementation samples and guidance for adapter authors, etc. (We will add this after hierarchy support is merged into https://github.com/microsoft/testfx)

Remarks

We will do test Id customization in the adapters. Adapters will create and assign the test id, and We will provide a sample here once it is checked into https://github.com/microsoft/testfx.

AB#1268457

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions