Skip to content

Commit

Permalink
Re-enable MSBuild unit tests for AppVeyor
Browse files Browse the repository at this point in the history
  • Loading branch information
DustinCampbell committed Dec 15, 2016
1 parent 6efa491 commit 0023a4c
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 3 deletions.
30 changes: 30 additions & 0 deletions src/OmniSharp.MSBuild/MSBuildEnvironment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,27 @@ namespace OmniSharp.MSBuild
{
public static class MSBuildEnvironment
{
private static bool s_isInitialized;
private static string s_msbuildFolder;

public static bool IsInitialized => s_isInitialized;

public static string MSBuildFolder
{
get
{
EnsureInitialized();
return s_msbuildFolder;
}
}

public static void Initialize(ILogger logger)
{
if (s_isInitialized)
{
throw new InvalidOperationException("MSBuildEnvironment is already initialized");
}

// If OmniSharp is running normally, MSBuild is located in an 'msbuild' folder beneath OmniSharp.exe.
var msbuildFolder = Path.Combine(AppContext.BaseDirectory, "msbuild");

Expand Down Expand Up @@ -63,6 +82,17 @@ public static void Initialize(ILogger logger)
{
logger.LogError("Could not locate MSBuild Sdks path to set MSBuildSDKsPath");
}

s_msbuildFolder = msbuildFolder;
s_isInitialized = true;
}

private static void EnsureInitialized()
{
if (!s_isInitialized)
{
throw new InvalidOperationException("MSBuildEnvironment is not initialized");
}
}

private static string FindMSBuildFolderFromSolution()
Expand Down
4 changes: 4 additions & 0 deletions src/OmniSharp.MSBuild/ProjectFile/ProjectFileInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@ public static ProjectFileInfo Create(
{
globalProperties.Add(PropertyNames.MSBuildExtensionsPath, options.MSBuildExtensionsPath);
}
else
{
globalProperties.Add(PropertyNames.MSBuildExtensionsPath, MSBuildEnvironment.MSBuildFolder);
}

if (PlatformHelper.IsMono)
{
Expand Down
9 changes: 6 additions & 3 deletions tests/OmniSharp.MSBuild.Tests/ProjectFileInfoTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,13 @@ public ProjectFileInfoTests(ITestOutputHelper output)
this._testAssets = TestAssets.Instance;
this._logger = new TestLogger(output);

MSBuildEnvironment.Initialize(this._logger);
if (!MSBuildEnvironment.IsInitialized)
{
MSBuildEnvironment.Initialize(this._logger);
}
}

[ConditionalFact(typeof(NotOnAppVeyor))]
[Fact]
public void HelloWorld_has_correct_property_values()
{
var projectFolder = _testAssets.GetTestProjectFolder("HelloWorld");
Expand All @@ -35,7 +38,7 @@ public void HelloWorld_has_correct_property_values()
Assert.Equal("bin/Debug/netcoreapp1.0/", projectFileInfo.OutputPath.Replace('\\', '/'));
}

[ConditionalFact(typeof(NotOnAppVeyor))]
[Fact]
public void NetStandardAndNetCoreApp_has_correct_property_values()
{
var projectFolder = _testAssets.GetTestProjectFolder("NetStandardAndNetCoreApp");
Expand Down

0 comments on commit 0023a4c

Please sign in to comment.