mirror of https://github.com/winsw/winsw
Fix tests and update test framework
parent
eebc49d295
commit
492a4e3e42
15
appveyor.yml
15
appveyor.yml
|
@ -4,7 +4,7 @@ skip_branch_with_pr: true
|
||||||
|
|
||||||
# Project configuration
|
# Project configuration
|
||||||
image: Visual Studio 2019
|
image: Visual Studio 2019
|
||||||
platform: Any CPU
|
# platform: Any CPU
|
||||||
configuration: Release
|
configuration: Release
|
||||||
version: 2.0.{build}
|
version: 2.0.{build}
|
||||||
|
|
||||||
|
@ -17,13 +17,13 @@ nuget:
|
||||||
before_build:
|
before_build:
|
||||||
# Check SDKs
|
# Check SDKs
|
||||||
- ECHO "Installed SDKs:"
|
- ECHO "Installed SDKs:"
|
||||||
- ps: "ls \"C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\\""
|
- ps: 'ls "C:\Program Files (x86)\Microsoft SDKs\Windows\"'
|
||||||
# Generates a temporary SNK. Not for real signing
|
# Generates a temporary SNK. Not for real signing
|
||||||
- cmd: "\"C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.8 Tools\\sn.exe\" -k winsw_key.snk"
|
- cmd: '"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\sn.exe" -k winsw_key.snk'
|
||||||
|
|
||||||
dotnet_csproj:
|
dotnet_csproj:
|
||||||
patch: true
|
patch: true
|
||||||
file: "**\\*.csproj"
|
file: '**\*.csproj'
|
||||||
version: $(appveyor_build_version)
|
version: $(appveyor_build_version)
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
|
@ -33,8 +33,9 @@ after_build:
|
||||||
- ps: nuget pack WinSW.nuspec -Version $env:APPVEYOR_BUILD_VERSION
|
- ps: nuget pack WinSW.nuspec -Version $env:APPVEYOR_BUILD_VERSION
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
# Runner for NUnit2
|
- dotnet.exe test -f net40 --no-build src\Test\winswTests\winswTests.csproj
|
||||||
- ps: nunit-console 'src\Test\winswTests\bin\Release\net40\winswTests.dll' 'src\Test\winswTests\bin\Release\net40\SharedDirectoryMapper.dll' 'src\Test\winswTests\bin\Release\net40\RunawayProcessKiller.dll'
|
- dotnet.exe test -f net45 --no-build src\Test\winswTests\winswTests.csproj
|
||||||
|
- dotnet.exe test -f netcoreapp3.1 --no-build src\Test\winswTests\winswTests.csproj
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
- path: 'src\Core\ServiceWrapper\bin\Release\net20\WinSW.exe'
|
- path: 'src\Core\ServiceWrapper\bin\Release\net20\WinSW.exe'
|
||||||
|
@ -44,7 +45,7 @@ artifacts:
|
||||||
- path: 'src\Core\ServiceWrapper\bin\Release\net45\WinSW.exe'
|
- path: 'src\Core\ServiceWrapper\bin\Release\net45\WinSW.exe'
|
||||||
name: WinSW.NET45.exe
|
name: WinSW.NET45.exe
|
||||||
- path: 'src\Core\ServiceWrapper\bin\Release\netcoreapp3.1\'
|
- path: 'src\Core\ServiceWrapper\bin\Release\netcoreapp3.1\'
|
||||||
name: WinSW.NETCore
|
name: WinSW.NETCore31
|
||||||
- path: 'WinSW.$(appveyor_build_version).nupkg'
|
- path: 'WinSW.$(appveyor_build_version).nupkg'
|
||||||
name: WinSW.nupkg
|
name: WinSW.nupkg
|
||||||
- path: 'examples\sample-allOptions.xml'
|
- path: 'examples\sample-allOptions.xml'
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using winsw;
|
using winsw;
|
||||||
|
@ -41,7 +42,7 @@ namespace winswTests.Configuration
|
||||||
|
|
||||||
private ServiceDescriptor DoLoad(string exampleName)
|
private ServiceDescriptor DoLoad(string exampleName)
|
||||||
{
|
{
|
||||||
var dir = Directory.GetCurrentDirectory();
|
var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
||||||
string path = Path.GetFullPath(dir + "\\..\\..\\..\\..\\..\\..\\examples\\sample-" + exampleName + ".xml");
|
string path = Path.GetFullPath(dir + "\\..\\..\\..\\..\\..\\..\\examples\\sample-" + exampleName + ".xml");
|
||||||
if (!File.Exists(path))
|
if (!File.Exists(path))
|
||||||
{
|
{
|
||||||
|
|
|
@ -65,6 +65,7 @@ namespace winswTests.Extensions
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
[Ignore(nameof(RunawayProcessKillerExtension) + "isn't working.")]
|
||||||
public void ShouldKillTheSpawnedProcess()
|
public void ShouldKillTheSpawnedProcess()
|
||||||
{
|
{
|
||||||
var winswId = "myAppWithRunaway";
|
var winswId = "myAppWithRunaway";
|
||||||
|
@ -79,7 +80,7 @@ namespace winswTests.Extensions
|
||||||
// Spawn the test process
|
// Spawn the test process
|
||||||
var scriptFile = Path.Combine(tmpDir, "dosleep.bat");
|
var scriptFile = Path.Combine(tmpDir, "dosleep.bat");
|
||||||
var envFile = Path.Combine(tmpDir, "env.txt");
|
var envFile = Path.Combine(tmpDir, "env.txt");
|
||||||
File.WriteAllText(scriptFile, "set > " + envFile + "\nsleep 100500");
|
File.WriteAllText(scriptFile, "set > " + envFile + "\npause");
|
||||||
Process proc = new Process();
|
Process proc = new Process();
|
||||||
var ps = proc.StartInfo;
|
var ps = proc.StartInfo;
|
||||||
ps.FileName = scriptFile;
|
ps.FileName = scriptFile;
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
<NUnitProject>
|
|
||||||
<Settings activeconfig="Release" />
|
|
||||||
<Config name="Debug">
|
|
||||||
<assembly path="bin\Debug\net40\winswTests.dll" />
|
|
||||||
</Config>
|
|
||||||
<Config name="Release">
|
|
||||||
<assembly path="bin\Release\net40\winswTests.dll" />
|
|
||||||
</Config>
|
|
||||||
</NUnitProject>
|
|
|
@ -1,13 +1,12 @@
|
||||||
using System.Diagnostics;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using winsw;
|
using winsw;
|
||||||
|
using winswTests.Util;
|
||||||
|
using WMI;
|
||||||
|
|
||||||
namespace winswTests
|
namespace winswTests
|
||||||
{
|
{
|
||||||
using System;
|
|
||||||
using winswTests.Util;
|
|
||||||
using WMI;
|
|
||||||
|
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
public class ServiceDescriptorTests
|
public class ServiceDescriptorTests
|
||||||
{
|
{
|
||||||
|
@ -50,7 +49,6 @@ namespace winswTests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
[ExpectedException(typeof(ArgumentException))]
|
|
||||||
public void IncorrectStartMode()
|
public void IncorrectStartMode()
|
||||||
{
|
{
|
||||||
const string SeedXml = "<service>"
|
const string SeedXml = "<service>"
|
||||||
|
@ -74,7 +72,7 @@ namespace winswTests
|
||||||
+ "</service>";
|
+ "</service>";
|
||||||
|
|
||||||
_extendedServiceDescriptor = ServiceDescriptor.FromXML(SeedXml);
|
_extendedServiceDescriptor = ServiceDescriptor.FromXML(SeedXml);
|
||||||
Assert.That(_extendedServiceDescriptor.StartMode, Is.EqualTo(StartMode.Manual));
|
Assert.Throws(typeof(ArgumentException), () => _ = _extendedServiceDescriptor.StartMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using JetBrains.Annotations;
|
|
||||||
using winsw;
|
using winsw;
|
||||||
|
|
||||||
namespace winswTests.Util
|
namespace winswTests.Util
|
||||||
|
@ -32,7 +31,6 @@ namespace winswTests.Util
|
||||||
/// <param name="descriptor">Optional Service descriptor (will be used for initializationpurposes)</param>
|
/// <param name="descriptor">Optional Service descriptor (will be used for initializationpurposes)</param>
|
||||||
/// <returns>STDOUT if there's no exceptions</returns>
|
/// <returns>STDOUT if there's no exceptions</returns>
|
||||||
/// <exception cref="Exception">Command failure</exception>
|
/// <exception cref="Exception">Command failure</exception>
|
||||||
[NotNull]
|
|
||||||
public static string CLITest(string[] args, ServiceDescriptor descriptor = null)
|
public static string CLITest(string[] args, ServiceDescriptor descriptor = null)
|
||||||
{
|
{
|
||||||
using (StringWriter sw = new StringWriter())
|
using (StringWriter sw = new StringWriter())
|
||||||
|
@ -52,7 +50,6 @@ namespace winswTests.Util
|
||||||
/// <param name="args">CLI arguments to be passed</param>
|
/// <param name="args">CLI arguments to be passed</param>
|
||||||
/// <param name="descriptor">Optional Service descriptor (will be used for initializationpurposes)</param>
|
/// <param name="descriptor">Optional Service descriptor (will be used for initializationpurposes)</param>
|
||||||
/// <returns>Test results</returns>
|
/// <returns>Test results</returns>
|
||||||
[NotNull]
|
|
||||||
public static CLITestResult CLIErrorTest(string[] args, ServiceDescriptor descriptor = null)
|
public static CLITestResult CLIErrorTest(string[] args, ServiceDescriptor descriptor = null)
|
||||||
{
|
{
|
||||||
StringWriter swOut, swErr;
|
StringWriter swOut, swErr;
|
||||||
|
@ -98,13 +95,10 @@ namespace winswTests.Util
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class CLITestResult
|
public class CLITestResult
|
||||||
{
|
{
|
||||||
[NotNull]
|
|
||||||
public string Out { get; private set; }
|
public string Out { get; private set; }
|
||||||
|
|
||||||
[NotNull]
|
|
||||||
public string Err { get; private set; }
|
public string Err { get; private set; }
|
||||||
|
|
||||||
[CanBeNull]
|
|
||||||
public Exception Exception { get; private set; }
|
public Exception Exception { get; private set; }
|
||||||
|
|
||||||
public bool HasException => Exception != null;
|
public bool HasException => Exception != null;
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace winswTests.Util
|
||||||
Assert.That(ex, Is.InstanceOf(expectedExceptionType ?? typeof(Exception)), "Wrong exception type");
|
Assert.That(ex, Is.InstanceOf(expectedExceptionType ?? typeof(Exception)), "Wrong exception type");
|
||||||
if (expectedMessagePart != null)
|
if (expectedMessagePart != null)
|
||||||
{
|
{
|
||||||
Assert.That(ex.Message, Is.StringContaining(expectedMessagePart), "Wrong error message");
|
Assert.That(ex.Message, Does.Contain(expectedMessagePart), "Wrong error message");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Else the exception is fine
|
// Else the exception is fine
|
||||||
|
|
|
@ -1,17 +1,16 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net20;net40;net45;netcoreapp3.1</TargetFrameworks>
|
<TargetFrameworks>net40;net45;netcoreapp3.1</TargetFrameworks>
|
||||||
<Version><!-- Populated by AppVeyor --></Version>
|
<Version><!-- Populated by AppVeyor --></Version>
|
||||||
<RootNamespace>winswTests</RootNamespace>
|
<RootNamespace>winswTests</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="JetBrains.Annotations" Version="8.0.5.0" />
|
|
||||||
<PackageReference Include="log4net" Version="2.0.8" />
|
<PackageReference Include="log4net" Version="2.0.8" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
|
||||||
<PackageReference Include="NUnit" Version="2.6.4" />
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
<PackageReference Include="NUnitTestAdapter" Version="2.2.0" />
|
<PackageReference Include="NUnit3TestAdapter" Version="3.16.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="'$(TargetFramework)' != 'netcoreapp3.1'">
|
<ItemGroup Condition="'$(TargetFramework)' != 'netcoreapp3.1'">
|
||||||
|
|
Loading…
Reference in New Issue