Skip to content

Commit 2a1137e

Browse files
added unit tests and code coverage
1 parent 5cae623 commit 2a1137e

File tree

5 files changed

+97
-6
lines changed

5 files changed

+97
-6
lines changed

.appveyor.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,6 @@ image: Visual Studio 2017
22
build_script:
33
- ps: .\build.ps1
44
test: off
5+
environment:
6+
coveralls_repo_token:
7+
secure: 8AAVbI/45PFVPmrdybK6jSt1I5Yt4nJithGWK4ARTBJZHf6pozIK7ucWMOkwG/4d

.coveralls.yml

Whitespace-only changes.

build.cake

Lines changed: 90 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
#tool "nuget:?package=GitVersion.CommandLine"
22
#tool "nuget:?package=xunit.runner.console"
3-
3+
#tool "nuget:?package=OpenCover"
4+
#tool "nuget:?package=coveralls.io"
5+
#addin "Cake.Coveralls";
46

57
var target = Argument("target", "Default");
68
var configuration = Argument("configuration", "Release");
7-
var artifacts = "./artifacts";
9+
var artifacts = new DirectoryPath("./artifacts").MakeAbsolute(Context.Environment);
810

911
Task("Clean")
1012
.Does(() =>
@@ -23,20 +25,104 @@ Task("Build")
2325
.IsDependentOn("Restore")
2426
.Does(() =>
2527
{
26-
foreach (var project in GetFiles("**/*.csproj"))
28+
foreach (var project in GetFiles("src/*/*.csproj").Concat(GetFiles("test/*/*.csproj")))
2729
DotNetCoreBuild(project.FullPath);
2830
});
2931

3032
Task("Test")
3133
.IsDependentOn("Build")
3234
.Does(() =>
3335
{
36+
EnsureDirectoryExists(artifacts + "/tests");
37+
EnsureDirectoryExists(artifacts + "/coverage");
38+
39+
foreach (var testProject in GetFiles("test/*/*.csproj")) {
40+
StartProcess("dotnet", new ProcessSettings() {
41+
WorkingDirectory = testProject.GetDirectory(),
42+
Arguments = new ProcessArgumentBuilder()
43+
.Append("xunit")
44+
.Append("-noshadow")
45+
.AppendSwitchQuotedSecret("-xml", string.Format("{0}/tests/{1}.xml", artifacts, testProject.GetFilenameWithoutExtension()))
46+
.AppendSwitchQuotedSecret("-html", string.Format("{0}/tests/{1}.html", artifacts, testProject.GetFilenameWithoutExtension()))
47+
});
48+
}
49+
});
50+
51+
Task("Coverage")
52+
.IsDependentOn("Build")
53+
.Does(() =>
54+
{
55+
EnsureDirectoryExists(artifacts + "/coverage");
56+
57+
foreach (var testProject in GetFiles("test/*/*.csproj")) {
58+
OpenCover(tool => {
59+
tool.StartProcess(Context.Tools.Resolve("dotnet.exe"), new ProcessSettings() {
60+
WorkingDirectory = testProject.GetDirectory(),
61+
Arguments = new ProcessArgumentBuilder()
62+
.Append("test")
63+
.Append("--no-build")
64+
.Append("-f net46")
3465

66+
});
67+
},
68+
artifacts + "/coverage/coverage.opencover",
69+
new OpenCoverSettings() {
70+
Register = "user",
71+
MergeOutput = true,
72+
OldStyle = true,
73+
WorkingDirectory = testProject.GetDirectory(),
74+
}
75+
.WithFilter("+[JsonRpc*]*")
76+
.WithFilter("+[Lsp*]*")
77+
.WithFilter("-[*.Tests]*")
78+
);
79+
}
3580
});
3681

82+
Task("Coveralls [AppVeyor]")
83+
.IsDependentOn("Coverage")
84+
.WithCriteria(AppVeyor.IsRunningOnAppVeyor)
85+
.Does(() => {
86+
CoverallsNet(artifacts + "/coverage/coverage.opencover", CoverallsNetReportType.OpenCover, new CoverallsNetSettings()
87+
{
88+
RepoToken = EnvironmentVariable("coveralls_repo_token"),
89+
UseRelativePaths = true,
90+
ServiceName = "Appveyor",
91+
CommitId = EnvironmentVariable("APPVEYOR_REPO_COMMIT"),
92+
CommitBranch = EnvironmentVariable("APPVEYOR_REPO_BRANCH"),
93+
CommitAuthor = EnvironmentVariable("APPVEYOR_REPO_COMMIT_AUTHOR"),
94+
CommitEmail = EnvironmentVariable("APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL"),
95+
CommitMessage = EnvironmentVariable("APPVEYOR_REPO_COMMIT_MESSAGE") + (EnvironmentVariable("APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED") ?? string.Empty),
96+
});
97+
});
98+
99+
Task("Coveralls [TravisCI]")
100+
.IsDependentOn("Coverage")
101+
.WithCriteria(TravisCI.IsRunningOnTravisCI)
102+
.Does(() => {
103+
CoverallsNet(artifacts + "/coverage/coverage.opencover", CoverallsNetReportType.OpenCover, new CoverallsNetSettings()
104+
{
105+
RepoToken = EnvironmentVariable("coveralls_repo_token"),
106+
UseRelativePaths = true,
107+
ServiceName = "TravisCI",
108+
// CommitId = EnvironmentVariable("APPVEYOR_REPO_COMMIT"),
109+
// CommitBranch = EnvironmentVariable("APPVEYOR_REPO_BRANCH"),
110+
// CommitAuthor = EnvironmentVariable("APPVEYOR_REPO_COMMIT_AUTHOR"),
111+
// CommitEmail = EnvironmentVariable("APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL"),
112+
// CommitMessage = EnvironmentVariable("APPVEYOR_REPO_COMMIT_MESSAGE") + (EnvironmentVariable("APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED") ?? string.Empty),
113+
});
114+
});
115+
116+
Task("Coveralls")
117+
.IsDependentOn("Coverage")
118+
.IsDependentOn("Coveralls [TravisCI]")
119+
.IsDependentOn("Coveralls [AppVeyor]");
120+
121+
37122
Task("Default")
38123
.IsDependentOn("Clean")
39124
.IsDependentOn("Build")
40-
.IsDependentOn("Test");
125+
.IsDependentOn("Test")
126+
.IsDependentOn("Coveralls");
41127

42128
RunTarget(target);

test/JsonRpc.Tests/JsonRpc.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<PackageReference Include="xunit" Version="2.3.0-beta1-build3642" />
1919
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0-beta1-build1309" />
2020
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0-beta1-build3642" />
21+
<PackageReference Include="Microsoft.CodeCoverage" Version="1.0.3" />
2122
</ItemGroup>
2223

2324
<ItemGroup>

test/Lsp.Tests/Lsp.Tests.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@
2020
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
2121
<PackageReference Include="NSubstitute" Version="2.0.2" />
2222
<PackageReference Include="xunit" Version="2.3.0-beta1-build3642" />
23-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0-beta1-build1309" />
24-
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0-beta1-build3642" />
23+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.0-beta1-build1309" />
24+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0-beta1-build3642" />
25+
<PackageReference Include="Microsoft.CodeCoverage" Version="1.0.3" />
2526
</ItemGroup>
2627

2728
<ItemGroup>

0 commit comments

Comments
 (0)