Integration tests improvements:

1. Added dummy game ticker for future tests to reduce startup time of test. (no loading a map)
2. Re-organized tests a bit.
This commit is contained in:
Pieter-Jan Briers
2020-01-20 22:14:44 +01:00
parent 42066fc8a1
commit eadb661515
5 changed files with 93 additions and 5 deletions

View File

@@ -1,9 +1,13 @@
using Content.Client; using Content.Client;
using Content.Client.Interfaces.Parallax; using Content.Client.Interfaces.Parallax;
using Content.Server;
using Content.Server.GameTicking;
using Content.Server.Interfaces.GameTicking;
using Robust.Shared.ContentPack; using Robust.Shared.ContentPack;
using Robust.Shared.Interfaces.Configuration; using Robust.Shared.Interfaces.Configuration;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.UnitTesting; using Robust.UnitTesting;
using EntryPoint = Content.Client.EntryPoint;
namespace Content.IntegrationTests namespace Content.IntegrationTests
{ {
@@ -11,7 +15,7 @@ namespace Content.IntegrationTests
{ {
protected override ClientIntegrationInstance StartClient(ClientIntegrationOptions options = null) protected override ClientIntegrationInstance StartClient(ClientIntegrationOptions options = null)
{ {
options = options ?? new ClientIntegrationOptions(); options ??= new ClientIntegrationOptions();
// ReSharper disable once RedundantNameQualifier // ReSharper disable once RedundantNameQualifier
options.ClientContentAssembly = typeof(EntryPoint).Assembly; options.ClientContentAssembly = typeof(EntryPoint).Assembly;
options.SharedContentAssembly = typeof(Shared.EntryPoint).Assembly; options.SharedContentAssembly = typeof(Shared.EntryPoint).Assembly;
@@ -33,10 +37,27 @@ namespace Content.IntegrationTests
protected override ServerIntegrationInstance StartServer(ServerIntegrationOptions options = null) protected override ServerIntegrationInstance StartServer(ServerIntegrationOptions options = null)
{ {
options = options ?? new ServerIntegrationOptions(); options ??= new ServerIntegrationOptions();
options.ServerContentAssembly = typeof(Server.EntryPoint).Assembly; options.ServerContentAssembly = typeof(Server.EntryPoint).Assembly;
options.SharedContentAssembly = typeof(Shared.EntryPoint).Assembly; options.SharedContentAssembly = typeof(Shared.EntryPoint).Assembly;
return base.StartServer(options); return base.StartServer(options);
} }
protected ServerIntegrationInstance StartServerDummyTicker(ServerIntegrationOptions options = null)
{
options ??= new ServerIntegrationOptions();
options.BeforeStart += () =>
{
IoCManager.Resolve<IModLoader>().SetModuleBaseCallbacks(new ServerModuleTestingCallbacks
{
ServerBeforeIoC = () =>
{
IoCManager.Register<IGameTicker, DummyGameTicker>(true);
}
});
};
return StartServer(options);
}
} }
} }

View File

@@ -0,0 +1,67 @@
using System;
using System.Collections.Generic;
using Content.Server.GameTicking;
using Content.Server.Interfaces.GameTicking;
using Content.Shared;
using Robust.Server.Interfaces.Player;
using Robust.Shared.Timing;
namespace Content.IntegrationTests
{
public class DummyGameTicker : SharedGameTicker, IGameTicker
{
public GameRunLevel RunLevel { get; } = GameRunLevel.InRound;
public event Action<GameRunLevelChangedEventArgs> OnRunLevelChanged;
public void Initialize()
{
}
public void Update(FrameEventArgs frameEventArgs)
{
}
public void RestartRound()
{
}
public void StartRound()
{
}
public void EndRound()
{
}
public void Respawn(IPlayerSession targetPlayer)
{
}
public void MakeObserve(IPlayerSession player)
{
}
public void MakeJoinGame(IPlayerSession player)
{
}
public void ToggleReady(IPlayerSession player, bool ready)
{
}
public T AddGameRule<T>() where T : GameRule, new()
{
return new T();
}
public void RemoveGameRule(GameRule rule)
{
}
public IEnumerable<GameRule> ActiveGameRules { get; } = Array.Empty<GameRule>();
public void SetStartPreset(Type type)
{
}
}
}

View File

@@ -7,7 +7,7 @@ using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
namespace Content.IntegrationTests namespace Content.IntegrationTests.Tests
{ {
[TestFixture] [TestFixture]
public class ConnectTest : ContentIntegrationTest public class ConnectTest : ContentIntegrationTest

View File

@@ -8,7 +8,7 @@ using Robust.Shared.Interfaces.Resources;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Utility; using Robust.Shared.Utility;
namespace Content.IntegrationTests namespace Content.IntegrationTests.Tests
{ {
/// <summary> /// <summary>
/// Tests that the /// Tests that the

View File

@@ -2,7 +2,7 @@ using System.Threading.Tasks;
using NUnit.Framework; using NUnit.Framework;
using Robust.Shared.Exceptions; using Robust.Shared.Exceptions;
namespace Content.IntegrationTests namespace Content.IntegrationTests.Tests
{ {
[TestFixture] [TestFixture]
public class StartTest : ContentIntegrationTest public class StartTest : ContentIntegrationTest