-
Notifications
You must be signed in to change notification settings - Fork 346
Description
Why is there duplicated versions in the table anyway? It helps to make it easier to test previews, plan was to automatically update the table to follow the release cycle of mstest - and other products like xunit), and to offer some flexibility, e.g. when xunit has a most dowloaded version that is different from mstest most downloaded version then we should be able to test them both, but not generate more than needed.
Currently we don't use compatibility matrix for xunit or nunit at all, but it would be helpful. So simply removing the duplications is not the recommended path forward.
When running compatibility tests, and there are some duplicated versions of the dependencies used to test we don't deduplicate the rows that are generated. See how to deduplicate them.
Similarly, the compatibility projects are generated at one time in assembly initialize and executed (we are not aware what will run later. And they most likely produce duplicated projects for the entries that have the same versions. See how we resolve the projects from the "LatestPreview" and similar monikers and see if we can reduce the number of projects built by deduplicating them.
<!--
Versions that are used when building projects from TestAssets.sln for compatibility tests. See Invoke-TestAssetsBuild in scripts/build.ps1.
Exact versions are used to avoid Nuget substituting them by closest match, if we make a typo.
These versions need to be "statically" readable because we read this file as xml in our build and tests.
-->
<!-- <MSTestFrameworkLatestVersion></MSTestFrameworkLatestVersion> is not here, because we don't build MSTest locally, so we don't have access to the latest version. -->
<MSTestFrameworkLatestPreviewVersion>[3.9.3]</MSTestFrameworkLatestPreviewVersion>
<MSTestFrameworkLatestStableVersion>[3.9.3]</MSTestFrameworkLatestStableVersion>
<MSTestFrameworkRecentStableVersion>[3.3.1]</MSTestFrameworkRecentStableVersion>
<MSTestFrameworkMostDownloadedVersion>[2.2.10]</MSTestFrameworkMostDownloadedVersion>
<MSTestFrameworkPreviousStableVersion>[2.2.10]</MSTestFrameworkPreviousStableVersion>
<MSTestFrameworkLegacyStableVersion>[1.4.0]</MSTestFrameworkLegacyStableVersion>
<!-- Versions that are used to restore previous versions of console, translation layer, and test.sdk for compatibility tests.
See Invoke-TestAssetsBuild in scripts/build.ps1. Exact versions are used to avoid Nuget substituting them by closest match, if we make a typo.
These versions need to be "statically" readable because we read this file as xml in our build and tests. -->
<!-- <VSTestConsoleLatestVersion></VSTestConsoleLatestVersion> is not here, NETTestSdkVersion is used instead, because that is the version of the locally built latest package. -->
<VSTestConsoleLatestPreviewVersion>[17.10.0]</VSTestConsoleLatestPreviewVersion>
<VSTestConsoleLatestStableVersion>[17.10.0]</VSTestConsoleLatestStableVersion>
<VSTestConsoleRecentStableVersion>[17.9.0]</VSTestConsoleRecentStableVersion>
<VSTestConsoleMostDownloadedVersion>[17.6.2]</VSTestConsoleMostDownloadedVersion>
<VSTestConsolePreviousStableVersion>[16.11.0]</VSTestConsolePreviousStableVersion>
<VSTestConsoleLegacyStableVersion>[15.9.2]</VSTestConsoleLegacyStableVersion>
<ILAsmPackageVersion>5.0.0</ILAsmPackageVersion>
</PropertyGroup>Compatibility tests are generating generated test assets for every combination, and they don't reduce the number of projects if there is some duplication in versions.
See if we can reduce that.