2023-06-25 09:06:47 +00:00
|
|
|
|
using Logging;
|
|
|
|
|
|
|
|
|
|
namespace ContinuousTests
|
2023-06-21 06:28:40 +00:00
|
|
|
|
{
|
2023-06-25 07:53:10 +00:00
|
|
|
|
public class ContinuousTestRunner
|
2023-06-21 06:28:40 +00:00
|
|
|
|
{
|
|
|
|
|
private readonly ConfigLoader configLoader = new ConfigLoader();
|
2023-06-21 07:27:59 +00:00
|
|
|
|
private readonly TestFactory testFactory = new TestFactory();
|
2023-06-25 07:53:10 +00:00
|
|
|
|
private readonly Configuration config;
|
|
|
|
|
private readonly StartupChecker startupChecker;
|
2023-06-21 08:06:54 +00:00
|
|
|
|
|
2023-06-26 12:44:21 +00:00
|
|
|
|
public ContinuousTestRunner(string[] args)
|
2023-06-21 08:06:54 +00:00
|
|
|
|
{
|
2023-06-26 12:44:21 +00:00
|
|
|
|
config = configLoader.Load(args);
|
2023-06-25 07:53:10 +00:00
|
|
|
|
startupChecker = new StartupChecker(config);
|
2023-06-21 08:06:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-06-25 07:53:10 +00:00
|
|
|
|
public void Run()
|
2023-06-21 06:28:40 +00:00
|
|
|
|
{
|
2023-06-25 07:53:10 +00:00
|
|
|
|
startupChecker.Check();
|
2023-06-21 06:28:40 +00:00
|
|
|
|
|
2023-06-25 09:06:47 +00:00
|
|
|
|
var overviewLog = new FixtureLog(new LogConfig(config.LogPath, false), "Overview");
|
2023-06-25 07:53:10 +00:00
|
|
|
|
var allTests = testFactory.CreateTests();
|
2023-06-25 09:06:47 +00:00
|
|
|
|
var testStarters = allTests.Select(t => new TestStarter(config, overviewLog, t.GetType(), t.RunTestEvery)).ToArray();
|
2023-06-21 06:28:40 +00:00
|
|
|
|
|
2023-06-25 07:53:10 +00:00
|
|
|
|
foreach (var t in testStarters)
|
2023-06-21 06:28:40 +00:00
|
|
|
|
{
|
2023-06-25 07:53:10 +00:00
|
|
|
|
t.Begin();
|
2023-06-26 07:14:02 +00:00
|
|
|
|
Thread.Sleep(TimeSpan.FromMinutes(5));
|
2023-06-21 06:28:40 +00:00
|
|
|
|
}
|
2023-06-25 07:53:10 +00:00
|
|
|
|
|
2023-06-25 08:50:01 +00:00
|
|
|
|
while (true) Thread.Sleep((2 ^ 31) - 1);
|
2023-06-23 09:38:30 +00:00
|
|
|
|
}
|
2023-06-21 08:06:54 +00:00
|
|
|
|
}
|
2023-06-21 06:28:40 +00:00
|
|
|
|
}
|