From 6999bf6fe8871b1b408e2690941074b8729e46bd Mon Sep 17 00:00:00 2001 From: Vagisha Nidhi Date: Mon, 3 Jun 2019 14:17:24 +0530 Subject: [PATCH 1/4] Adding PEReader to extensions --- src/package/nuspec/Microsoft.TestPlatform.nuspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/package/nuspec/Microsoft.TestPlatform.nuspec b/src/package/nuspec/Microsoft.TestPlatform.nuspec index ed3a5d013e..5611d9b658 100644 --- a/src/package/nuspec/Microsoft.TestPlatform.nuspec +++ b/src/package/nuspec/Microsoft.TestPlatform.nuspec @@ -106,7 +106,7 @@ - + From 2cd6e572110808c01e8d614faa04e15d72154ad5 Mon Sep 17 00:00:00 2001 From: Vagisha Nidhi Date: Tue, 4 Jun 2019 11:58:48 +0530 Subject: [PATCH 2/4] Adding E2E test --- .../DataCollectionTests.cs | 13 ++++++++++ .../IntegrationTestBase.cs | 5 ++++ test/TestAssets/TestAssets.sln/TestAssets.sln | 6 +++++ .../TraceCollectorLoader.csproj | 15 ++++++++++++ .../TraceCollectorLoader/UnitTest1.cs | 24 +++++++++++++++++++ 5 files changed, 63 insertions(+) create mode 100644 test/TestAssets/TraceCollectorLoader/TraceCollectorLoader.csproj create mode 100644 test/TestAssets/TraceCollectorLoader/UnitTest1.cs diff --git a/test/Microsoft.TestPlatform.AcceptanceTests/DataCollectionTests.cs b/test/Microsoft.TestPlatform.AcceptanceTests/DataCollectionTests.cs index 4729b63641..7493515ec1 100644 --- a/test/Microsoft.TestPlatform.AcceptanceTests/DataCollectionTests.cs +++ b/test/Microsoft.TestPlatform.AcceptanceTests/DataCollectionTests.cs @@ -82,6 +82,19 @@ public void ExecuteTestsWithDataCollectionUsingCollectArgument(RunnerInfo runner this.VaildateDataCollectorOutput(); } + [TestMethod] + [NetFullTargetFrameworkDataSource] + [NetCoreTargetFrameworkDataSource] + public void DataCollectorAssemblyLoadingShouldNotThrowError(RunnerInfo runnerInfo) + { + AcceptanceTestBase.SetTestEnvironment(this.testEnvironment, runnerInfo); + + var arguments = PrepareArguments(GetAssetFullPath("TraceCollectorLoader.dll", "netcoreapp2.0"), string.Empty, string.Empty, this.FrameworkArgValue); + + this.InvokeVsTest(arguments); + this.ValidateSummaryStatus(1, 0, 0); + } + private static void CreateDataCollectionRunSettingsFile(string destinationRunsettingsPath, Dictionary dataCollectionAttributes) { var doc = new XmlDocument(); diff --git a/test/Microsoft.TestPlatform.TestUtilities/IntegrationTestBase.cs b/test/Microsoft.TestPlatform.TestUtilities/IntegrationTestBase.cs index b7bcb40c93..b2b187cae6 100644 --- a/test/Microsoft.TestPlatform.TestUtilities/IntegrationTestBase.cs +++ b/test/Microsoft.TestPlatform.TestUtilities/IntegrationTestBase.cs @@ -348,6 +348,11 @@ protected string GetAssetFullPath(string assetName) return this.testEnvironment.GetTestAsset(assetName); } + protected string GetAssetFullPath(string assetName, string targetFramework) + { + return this.testEnvironment.GetTestAsset(assetName, targetFramework); + } + protected string GetTestAdapterPath(UnitTestFramework testFramework = UnitTestFramework.MSTest) { string adapterRelativePath = string.Empty; diff --git a/test/TestAssets/TestAssets.sln/TestAssets.sln b/test/TestAssets/TestAssets.sln/TestAssets.sln index 8e6ec13ca3..54a3de3ed3 100644 --- a/test/TestAssets/TestAssets.sln/TestAssets.sln +++ b/test/TestAssets/TestAssets.sln/TestAssets.sln @@ -45,6 +45,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LegacySettingsUnitTestProje EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NewtonSoftDependency", "..\NewtonSoftDependency\NewtonSoftDependency.csproj", "{79EDA259-5EA0-45F0-990A-F078427E198A}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TraceCollectorLoader", "..\TraceCollectorLoader\TraceCollectorLoader.csproj", "{85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -135,6 +137,10 @@ Global {79EDA259-5EA0-45F0-990A-F078427E198A}.Debug|Any CPU.Build.0 = Debug|Any CPU {79EDA259-5EA0-45F0-990A-F078427E198A}.Release|Any CPU.ActiveCfg = Release|Any CPU {79EDA259-5EA0-45F0-990A-F078427E198A}.Release|Any CPU.Build.0 = Release|Any CPU + {85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/test/TestAssets/TraceCollectorLoader/TraceCollectorLoader.csproj b/test/TestAssets/TraceCollectorLoader/TraceCollectorLoader.csproj new file mode 100644 index 0000000000..cd35779207 --- /dev/null +++ b/test/TestAssets/TraceCollectorLoader/TraceCollectorLoader.csproj @@ -0,0 +1,15 @@ + + + + netcoreapp2.0;net451 + + false + + + + + + + + + diff --git a/test/TestAssets/TraceCollectorLoader/UnitTest1.cs b/test/TestAssets/TraceCollectorLoader/UnitTest1.cs new file mode 100644 index 0000000000..702cfa9568 --- /dev/null +++ b/test/TestAssets/TraceCollectorLoader/UnitTest1.cs @@ -0,0 +1,24 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Linq; + +namespace TraceCollectorLoader +{ + [TestClass] + public class UnitTest1 + { + [TestMethod] + public void TestMethod1() + { + // https://github.com/microsoft/vstest/issues/2008 + // GetAssemblies adds datacollectors to test host appdomain which was failing in the above issue + + var allAssemblies = AppDomain.CurrentDomain.GetAssemblies(); + + foreach(var assembly in allAssemblies) + { + var typeInfo = assembly.GetTypes(); + } + } + } +} From af447aff0b884a4724f3a9d7762d59fbc17d4b21 Mon Sep 17 00:00:00 2001 From: Vagisha Nidhi Date: Tue, 4 Jun 2019 13:55:26 +0530 Subject: [PATCH 3/4] Copying PEReader dll to artifacts Extensions --- scripts/build.ps1 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/build.ps1 b/scripts/build.ps1 index c24fe94e83..0692bb1c36 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -489,6 +489,9 @@ function Create-VsixPackage $legacyDir = Join-Path $env:TP_PACKAGES_DIR "Microsoft.Internal.TestPlatform.Extensions\$testPlatformExternalsVersion\contentFiles\any\any" Copy-Item -Recurse $legacyDir\* $packageDir -Force + # Copy Microsoft.VisualStudio.ArchitectureTools.PEReader to Extensions + Copy-Item $legacyDir\Microsoft.VisualStudio.ArchitectureTools.PEReader.dll $extensionsPackageDir -Force + # Copy QtAgent Related depedencies $legacyDir = Join-Path $env:TP_PACKAGES_DIR "Microsoft.VisualStudio.QualityTools\$testPlatformExternalsVersion\contentFiles\any\any" Copy-Item -Recurse $legacyDir\* $packageDir -Force From ad8d5203c254af559e45a28287e9673314d3333d Mon Sep 17 00:00:00 2001 From: Vagisha Nidhi Date: Wed, 5 Jun 2019 21:59:31 +0530 Subject: [PATCH 4/4] Updated test project name --- .../DataCollectionTests.cs | 17 ++++++++++++++--- .../AppDomainGetAssembliesTestProject.csproj} | 0 .../UnitTest1.cs | 2 +- test/TestAssets/TestAssets.sln/TestAssets.sln | 10 +++++----- 4 files changed, 20 insertions(+), 9 deletions(-) rename test/TestAssets/{TraceCollectorLoader/TraceCollectorLoader.csproj => AppDomainGetAssembliesTestProject/AppDomainGetAssembliesTestProject.csproj} (100%) rename test/TestAssets/{TraceCollectorLoader => AppDomainGetAssembliesTestProject}/UnitTest1.cs (93%) diff --git a/test/Microsoft.TestPlatform.AcceptanceTests/DataCollectionTests.cs b/test/Microsoft.TestPlatform.AcceptanceTests/DataCollectionTests.cs index 7493515ec1..5c76d50210 100644 --- a/test/Microsoft.TestPlatform.AcceptanceTests/DataCollectionTests.cs +++ b/test/Microsoft.TestPlatform.AcceptanceTests/DataCollectionTests.cs @@ -83,13 +83,24 @@ public void ExecuteTestsWithDataCollectionUsingCollectArgument(RunnerInfo runner } [TestMethod] - [NetFullTargetFrameworkDataSource] [NetCoreTargetFrameworkDataSource] - public void DataCollectorAssemblyLoadingShouldNotThrowError(RunnerInfo runnerInfo) + public void DataCollectorAssemblyLoadingShouldNotThrowErrorForNetCore(RunnerInfo runnerInfo) + { + AcceptanceTestBase.SetTestEnvironment(this.testEnvironment, runnerInfo); + + var arguments = PrepareArguments(GetAssetFullPath("AppDomainGetAssembliesTestProject.dll", "netcoreapp2.0"), string.Empty, string.Empty, this.FrameworkArgValue); + + this.InvokeVsTest(arguments); + this.ValidateSummaryStatus(1, 0, 0); + } + + [TestMethod] + [NetFullTargetFrameworkDataSource] + public void DataCollectorAssemblyLoadingShouldNotThrowErrorForFullFramework(RunnerInfo runnerInfo) { AcceptanceTestBase.SetTestEnvironment(this.testEnvironment, runnerInfo); - var arguments = PrepareArguments(GetAssetFullPath("TraceCollectorLoader.dll", "netcoreapp2.0"), string.Empty, string.Empty, this.FrameworkArgValue); + var arguments = PrepareArguments(GetAssetFullPath("AppDomainGetAssembliesTestProject.dll"), string.Empty, string.Empty, this.FrameworkArgValue); this.InvokeVsTest(arguments); this.ValidateSummaryStatus(1, 0, 0); diff --git a/test/TestAssets/TraceCollectorLoader/TraceCollectorLoader.csproj b/test/TestAssets/AppDomainGetAssembliesTestProject/AppDomainGetAssembliesTestProject.csproj similarity index 100% rename from test/TestAssets/TraceCollectorLoader/TraceCollectorLoader.csproj rename to test/TestAssets/AppDomainGetAssembliesTestProject/AppDomainGetAssembliesTestProject.csproj diff --git a/test/TestAssets/TraceCollectorLoader/UnitTest1.cs b/test/TestAssets/AppDomainGetAssembliesTestProject/UnitTest1.cs similarity index 93% rename from test/TestAssets/TraceCollectorLoader/UnitTest1.cs rename to test/TestAssets/AppDomainGetAssembliesTestProject/UnitTest1.cs index 702cfa9568..0cfa179995 100644 --- a/test/TestAssets/TraceCollectorLoader/UnitTest1.cs +++ b/test/TestAssets/AppDomainGetAssembliesTestProject/UnitTest1.cs @@ -2,7 +2,7 @@ using System; using System.Linq; -namespace TraceCollectorLoader +namespace AppDomainGetAssembliesTestProject { [TestClass] public class UnitTest1 diff --git a/test/TestAssets/TestAssets.sln/TestAssets.sln b/test/TestAssets/TestAssets.sln/TestAssets.sln index 54a3de3ed3..317e3dfc53 100644 --- a/test/TestAssets/TestAssets.sln/TestAssets.sln +++ b/test/TestAssets/TestAssets.sln/TestAssets.sln @@ -45,7 +45,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LegacySettingsUnitTestProje EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NewtonSoftDependency", "..\NewtonSoftDependency\NewtonSoftDependency.csproj", "{79EDA259-5EA0-45F0-990A-F078427E198A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TraceCollectorLoader", "..\TraceCollectorLoader\TraceCollectorLoader.csproj", "{85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppDomainGetAssembliesTestProject", "..\AppDomainGetAssembliesTestProject\AppDomainGetAssembliesTestProject.csproj", "{BF090BCE-CC7D-4359-93E2-30F2B454F751}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -137,10 +137,10 @@ Global {79EDA259-5EA0-45F0-990A-F078427E198A}.Debug|Any CPU.Build.0 = Debug|Any CPU {79EDA259-5EA0-45F0-990A-F078427E198A}.Release|Any CPU.ActiveCfg = Release|Any CPU {79EDA259-5EA0-45F0-990A-F078427E198A}.Release|Any CPU.Build.0 = Release|Any CPU - {85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85A7A75D-3FFE-4F9E-B71A-E4CF83D8E8E6}.Release|Any CPU.Build.0 = Release|Any CPU + {BF090BCE-CC7D-4359-93E2-30F2B454F751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF090BCE-CC7D-4359-93E2-30F2B454F751}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF090BCE-CC7D-4359-93E2-30F2B454F751}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF090BCE-CC7D-4359-93E2-30F2B454F751}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE