Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tasks for fully qualified name #2833

Closed
4 tasks done
shyamnamboodiripad opened this issue Mar 29, 2021 · 2 comments
Closed
4 tasks done

Tasks for fully qualified name #2833

shyamnamboodiripad opened this issue Mar 29, 2021 · 2 comments

Comments

@shyamnamboodiripad
Copy link
Contributor

shyamnamboodiripad commented Mar 29, 2021

Spec:

  • 1. Publish helper API to generate compliant class and method names that adhere to the standard specified in 0017-Managed-TestCase-Properties.md (Related PRs: Managed TestCase Properties implemented #2611, Move FQN related code into a separate NuGet package #2714)

  • 2. Publish helper API to standardize TestCase.Id generation (Related PRs: Added some capabilities to package utilities #2854)

  • Adapters should be able to call this API and get back a deterministic and unique Id Guid given the same set of inputs (strings).

  • Inputs would include the same method and class names returned by the API in Load and Initialize Data Collectors #2 above. For parameterized tests, the inputs would also include argument values (which could be any value that can appear in a .NET attribute).

  • 3. Publish helper API to standardize test hierarchy display information (Related PRs: Added constants for hierarchical naming #2724, Added some capabilities to package utilities #2854)

  • This can be accomplished by adding an out parameter on the API in 1 above that returns an array with default display name values for each level in the hierarchy (namespace, class, test group, and test).

  • When creating Testcase objects, Test Adapter authors can choose to supply different values than what is returned in the out parameter) for any level, based on their own display name rules. However, having the out parameter on the above API would make the hierarchy functionality easier to discover (we could hang documentation comment on it) and would also avoid code duplication/parsing for computing the levels of the hierarchy that typically have fixed names that the end-user can’t change (such as for namespace and class).

  • 4. Update guidance for test adapter authors (Related PRs: Added documentation about escaped special names vstest-docs#247)

  • Update 0017-Managed-TestCase-Properties.md to include recent updates (including changes around how the test hierarchy will be encoded, how names with special Unicode characters will be handled etc.).

  • Understand whether it is possible to encounter names with special Unicode characters in the Roslyn symbol API. Our current assumption is that this should not be possible for source symbols (since such names are not legal in C#) however they may be encountered in metadata symbols from referenced F# assemblies. (Preliminary investigation did reveal that C# cannot interop with methods and classes containing special Unicode characters in their name.)

@shyamnamboodiripad
Copy link
Contributor Author

FYI @peterwald @Haplois @pavelhorak

@Haplois
Copy link
Contributor

Haplois commented Apr 21, 2021

@Haplois Haplois closed this as completed Jun 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants