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

Initialize #1

Merged
merged 9 commits into from
Jul 19, 2018
Merged

Initialize #1

merged 9 commits into from
Jul 19, 2018

Conversation

sharwell
Copy link
Member

Initial implementation of the xUnit.net test harness for integration testing Visual Studio extensions.

@@ -0,0 +1,3 @@
{
"appDomain": "denied"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Need to file an issue to investigate whether this is required.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

➡️ #3

try
{
ExecutionMessageSink.OnMessage(new TestAssemblyStarting(testCases, TestAssembly, DateTime.Now, GetTestFrameworkEnvironment(), GetTestFrameworkDisplayName()));
ExecutionMessageSink.OnMessage(new TestCollectionStarting(testCases, testCollection));
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Need to file an issue to investigate whether the test collection messages can be passed through from child test processes.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

➡️ #4

internal class VisualStudioInstance
{
private readonly IntegrationService _integrationService;
private readonly IpcChannel _integrationServiceChannel;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Need to file an issue to investigate the use of WCF instead of .NET Remoting.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

➡️ #5

Directory.CreateDirectory(temporaryFolder);

var integrationTestServiceExtension = ExtractIntegrationTestServiceExtension(temporaryFolder);
var extensions = new[] { integrationTestServiceExtension };
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 This will need to be extensible before the test harness can be used for cross-version testing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

➡️ #6

<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="Microsoft.VisualStudio.IntegrationTestService" Version="1.0.0" Language="en-US" Publisher="Microsoft" />
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 This extension will not actually be published to the Visual Studio gallery. Need to figure out if this can be expressed in VSIX v3 (without breaking VS2012 support).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

➡️ #7

<TargetFramework>net452</TargetFramework>
<Platforms>x86</Platforms>

<VSInstallRoot>$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\11.0@InstallDir)</VSInstallRoot>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Currently, building this project requires the user have Visual Studio 2012, 2013, 2015, and 2017 installed. Need to figure out a way to get the necessary dependencies on NuGet or MyGet so we can avoid this.

Copy link
Member Author

@sharwell sharwell Jul 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

➡️ #8

<ItemGroup>
<Reference Include="Microsoft.VisualStudio.ExtensionEngine" HintPath="$(MSBuildProgramFiles32)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Microsoft.VisualStudio.ExtensionEngine.dll" Private="false" />
<Reference Include="Microsoft.VisualStudio.ExtensionManager" HintPath="$(MSBuildProgramFiles32)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.ExtensionManager.dll" Private="false" />
<Reference Include="Microsoft.VisualStudio.ExtensionManager.Implementation" HintPath="$(MSBuildProgramFiles32)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.ExtensionManager.Implementation.dll" Private="false" />
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Hard-coded dependency paths.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

➡️ #9

[MethodImpl(MethodImplOptions.InternalCall)]
void GetAssetProperties(
[In] [MarshalAs(UnmanagedType.LPWStr)] string szAssetTypeName,
[MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_BSTR)] out Array prgsaNames,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💭 It should be possible to use string[] instead of Array for these...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

➡️ #10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant