Skip to content

Commit d67d562

Browse files
author
Jake Ginnivan
committed
Got /exec and /proj tests running again and fixed a number of command line bugs
1 parent 9d97fbd commit d67d562

20 files changed

+164
-270
lines changed

AcceptanceTests/AcceptanceTests.csproj

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,18 @@
5858
</Reference>
5959
</ItemGroup>
6060
<ItemGroup>
61-
<Compile Include="ExecArgSpecification.cs" />
61+
<Compile Include="ExecCmdLineArgumentTest.cs" />
6262
<Compile Include="GitFlow\DevelopScenarios.cs" />
63-
<Compile Include="NormaliseGitDirectoryInTeamCity.cs" />
64-
<Compile Include="EmptyRepository.cs" />
63+
<Compile Include="PullRequestInTeamCityTest.cs" />
64+
<Compile Include="EmptyRepositoryFixture.cs" />
6565
<Compile Include="Helpers\ExecutionResults.cs" />
6666
<Compile Include="Helpers\GitHelper.cs" />
6767
<Compile Include="Helpers\GitVersionHelper.cs" />
6868
<Compile Include="Helpers\IPostTestDirectoryRemover.cs" />
6969
<Compile Include="Helpers\PathHelper.cs" />
70-
<Compile Include="Helpers\ProcessHelper.cs" />
7170
<Compile Include="Helpers\Scrubbers.cs" />
7271
<Compile Include="GitHubFlow\MasterTests.cs" />
73-
<Compile Include="ProjArgSpecification.cs" />
72+
<Compile Include="MsBuildProjectArgTest.cs" />
7473
<Compile Include="Properties\ApprovalTestsConfig.cs" />
7574
<Compile Include="Properties\AssemblyInfo.cs" />
7675
<Compile Include="Properties\Resources.Designer.cs">

AcceptanceTests/EmptyRepository.cs renamed to AcceptanceTests/EmptyRepositoryFixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
namespace GitHubFlowVersion.AcceptanceTests
77
{
8-
public class EmptyRepository : IDisposable
8+
public class EmptyRepositoryFixture : IDisposable
99
{
1010
public readonly string RepositoryPath;
1111
public readonly Repository Repository;
1212

13-
public EmptyRepository()
13+
public EmptyRepositoryFixture()
1414
{
1515
RepositoryPath = PathHelper.GetTempPath();
1616
Repository.Init(RepositoryPath);

AcceptanceTests/ExecArgSpecification.cs

Lines changed: 0 additions & 43 deletions
This file was deleted.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+

2+
namespace GitHubFlowVersion.AcceptanceTests
3+
{
4+
using global::AcceptanceTests.Properties;
5+
using System.IO;
6+
using Helpers;
7+
using Shouldly;
8+
using Xunit;
9+
10+
public class ExecCmdLineArgumentTest
11+
{
12+
private const string MsBuild = @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe";
13+
private const string TaggedVersion = "1.2.3";
14+
15+
[Fact]
16+
public void RunExecViaCommandLine()
17+
{
18+
using (var fixture = new EmptyRepositoryFixture())
19+
{
20+
fixture.Repository.MakeATaggedCommit(TaggedVersion);
21+
fixture.Repository.MakeACommit();
22+
23+
var buildFile = Path.Combine(fixture.RepositoryPath, "TestBuildFile.proj");
24+
File.WriteAllBytes(buildFile, Resources.TestBuildFile);
25+
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath, MsBuild, "TestBuildFile.proj /target:OutputResults");
26+
27+
result.ExitCode.ShouldBe(0);
28+
result.Log.ShouldContain("GitVersion_FullSemVer: 1.2.4+1");
29+
}
30+
}
31+
}
32+
}

AcceptanceTests/GitFlow/DevelopScenarios.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ public class DevelopScenarios
1212
[Fact]
1313
public void WhenDevelopBranchedFromMaster_MinorIsIncreased()
1414
{
15-
using (var fixture = new EmptyRepository())
15+
using (var fixture = new EmptyRepositoryFixture())
1616
{
1717
fixture.Repository.MakeATaggedCommit("1.0.0");
1818
fixture.Repository.CreateBranch("develop").Checkout();
1919

2020
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath);
2121

22-
result.Output[VariableProvider.SemVer].ShouldBe("1.1.0.1-unstable");
22+
result.OutputVariables[VariableProvider.SemVer].ShouldBe("1.1.0.1-unstable");
2323
}
2424
}
2525
}

AcceptanceTests/GitHubFlow/MasterTests.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class MasterTests
1010
[Fact]
1111
public void GivenARepositoryWithCommitsButNoTags_VersionShouldBe_0_1()
1212
{
13-
using (var fixture = new EmptyRepository())
13+
using (var fixture = new EmptyRepositoryFixture())
1414
{
1515
// Given
1616
fixture.Repository.MakeACommit();
@@ -21,14 +21,14 @@ public void GivenARepositoryWithCommitsButNoTags_VersionShouldBe_0_1()
2121
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath);
2222

2323
result.ExitCode.ShouldBe(0);
24-
result.Output[VariableProvider.FullSemVer].ShouldBe("0.1.0+2");
24+
result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("0.1.0+2");
2525
}
2626
}
2727

2828
[Fact]
2929
public void GivenARepositoryWithNoTagsAndANextVersionTxtFile_VersionShouldMatchVersionTxtFile()
3030
{
31-
using (var fixture = new EmptyRepository())
31+
using (var fixture = new EmptyRepositoryFixture())
3232
{
3333
const string ExpectedNextVersion = "1.0.0";
3434
fixture.Repository.MakeACommit();
@@ -39,14 +39,14 @@ public void GivenARepositoryWithNoTagsAndANextVersionTxtFile_VersionShouldMatchV
3939
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath);
4040

4141
result.ExitCode.ShouldBe(0);
42-
result.Output[VariableProvider.FullSemVer].ShouldBe("1.0.0+2");
42+
result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.0.0+2");
4343
}
4444
}
4545

4646
[Fact]
4747
public void GivenARepositoryWithTagAndANextVersionTxtFile_VersionShouldMatchVersionTxtFile()
4848
{
49-
using (var fixture = new EmptyRepository())
49+
using (var fixture = new EmptyRepositoryFixture())
5050
{
5151
const string ExpectedNextVersion = "1.1.0";
5252
const string TaggedVersion = "1.0.3";
@@ -57,14 +57,14 @@ public void GivenARepositoryWithTagAndANextVersionTxtFile_VersionShouldMatchVers
5757
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath);
5858

5959
result.ExitCode.ShouldBe(0);
60-
result.Output[VariableProvider.FullSemVer].ShouldBe("1.1.0+5");
60+
result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.1.0+5");
6161
}
6262
}
6363

6464
[Fact]
6565
public void GivenARepositoryWithTagAndNoNextVersionTxtFile_VersionShouldBeTagWithBumpedPatch()
6666
{
67-
using (var fixture = new EmptyRepository())
67+
using (var fixture = new EmptyRepositoryFixture())
6868
{
6969
const string TaggedVersion = "1.0.3";
7070
fixture.Repository.MakeATaggedCommit(TaggedVersion);
@@ -73,14 +73,14 @@ public void GivenARepositoryWithTagAndNoNextVersionTxtFile_VersionShouldBeTagWit
7373
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath);
7474

7575
result.ExitCode.ShouldBe(0);
76-
result.Output[VariableProvider.FullSemVer].ShouldBe("1.0.4+5");
76+
result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.0.4+5");
7777
}
7878
}
7979

8080
[Fact]
8181
public void GivenARepositoryWithTagAndOldNextVersionTxtFile_VersionShouldBeTagWithBumpedPatch()
8282
{
83-
using (var fixture = new EmptyRepository())
83+
using (var fixture = new EmptyRepositoryFixture())
8484
{
8585
const string NextVersionTxt = "1.0.0";
8686
const string TaggedVersion = "1.1.0";
@@ -91,7 +91,7 @@ public void GivenARepositoryWithTagAndOldNextVersionTxtFile_VersionShouldBeTagWi
9191
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath);
9292

9393
result.ExitCode.ShouldBe(0);
94-
result.Output[VariableProvider.FullSemVer].ShouldBe("1.1.1+5");
94+
result.OutputVariables[VariableProvider.FullSemVer].ShouldBe("1.1.1+5");
9595
}
9696
}
9797
}
Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
11
namespace GitHubFlowVersion.AcceptanceTests.Helpers
22
{
33
using System.Collections.Generic;
4+
using System.Web.Script.Serialization;
45

56
public class ExecutionResults
67
{
7-
public ExecutionResults(int exitCode, Dictionary<string, string> output)
8+
public ExecutionResults(int exitCode, string output, string logContents)
89
{
910
ExitCode = exitCode;
1011
Output = output;
12+
Log = logContents;
1113
}
1214

1315
public int ExitCode { get; private set; }
14-
public Dictionary<string, string> Output { get; private set; }
16+
public string Output { get; private set; }
17+
public string Log { get; set; }
18+
19+
public Dictionary<string, string> OutputVariables
20+
{
21+
get { return new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(Output); }
22+
}
1523
}
1624
}

AcceptanceTests/Helpers/GitVersionHelper.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,20 @@
66
namespace GitHubFlowVersion.AcceptanceTests.Helpers
77
{
88
using System.Collections.Generic;
9-
using System.Web.Script.Serialization;
9+
using GitVersion;
1010

1111
public static class GitVersionHelper
1212
{
1313
public static ExecutionResults ExecuteIn(string workingDirectory,
14-
string exec = null, string execArgs = null, string projectFile = null, string targets = null,
14+
string exec = null, string execArgs = null, string projectFile = null, string projectArgs = null,
1515
bool isTeamCity = false)
1616
{
1717
var logFile = Path.Combine(workingDirectory, "log.txt");
1818
var gitHubFlowVersion = Path.Combine(PathHelper.GetCurrentDirectory(), "GitVersion.exe");
19-
var execArg = exec == null ? null : string.Format(" /Exec \"{0}\"", exec);
20-
var execArgsArg = execArgs == null ? null : string.Format(" /ExecArgs \"{0}\"", execArgs);
21-
var projectFileArg = projectFile == null ? null : string.Format(" /Proj \"{0}\"", projectFile);
22-
var targetsArg = targets == null ? null : string.Format(" /Targets \"{0}\"", targets);
19+
var execArg = exec == null ? null : string.Format(" /exec \"{0}\"", exec);
20+
var execArgsArg = execArgs == null ? null : string.Format(" /execArgs \"{0}\"", execArgs);
21+
var projectFileArg = projectFile == null ? null : string.Format(" /proj \"{0}\"", projectFile);
22+
var targetsArg = projectArgs == null ? null : string.Format(" /projargs \"{0}\"", projectArgs);
2323
var logArg = string.Format(" /l \"{0}\"", logFile);
2424
var arguments = string.Format("\"{0}\"{1}{2}{3}{4}{5}", workingDirectory, execArg, execArgsArg,
2525
projectFileArg, targetsArg, logArg);
@@ -37,6 +37,7 @@ public static ExecutionResults ExecuteIn(string workingDirectory,
3737
gitHubFlowVersion, arguments, workingDirectory,
3838
environmentalVariables);
3939

40+
var logContents = File.ReadAllText(logFile);
4041
Console.WriteLine("Output from GitVersion.exe");
4142
Console.WriteLine("-------------------------------------------------------");
4243
Console.WriteLine(output.ToString());
@@ -45,12 +46,12 @@ public static ExecutionResults ExecuteIn(string workingDirectory,
4546
Console.WriteLine("-------------------------------------------------------");
4647
Console.WriteLine("Log from GitVersion.exe");
4748
Console.WriteLine("-------------------------------------------------------");
48-
Console.WriteLine(File.ReadAllText(logFile));
49+
Console.WriteLine(logContents);
4950
Console.WriteLine();
5051
Console.WriteLine();
5152
Console.WriteLine("-------------------------------------------------------");
5253

53-
return new ExecutionResults(exitCode, new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(output.ToString()));
54+
return new ExecutionResults(exitCode, output.ToString(), logContents);
5455
}
5556

5657
public static void AddNextVersionTxtFile(this IRepository repository, string version)

0 commit comments

Comments
 (0)