Skip to content

Commit 1d5d9d4

Browse files
committed
- Migrate to MStest 3.0 framework
- Fix test errors caused by private references
1 parent 66239cd commit 1d5d9d4

10 files changed

Lines changed: 40 additions & 60 deletions

File tree

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
global using BattleTech;
2+
global using HarmonyLib;

LowVisibility/LowVisibilityTests/LowVisibilityTests.csproj

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,36 +28,42 @@
2828
<AssemblyTitle>LowVisibilityTests</AssemblyTitle>
2929
<Product>LowVisibilityTests</Product>
3030
<Copyright>Copyright © 2023</Copyright>
31-
<AssemblyVersion>2.0.0.0</AssemblyVersion>
32-
<FileVersion>2.0.0.0</FileVersion>
31+
<AssemblyVersion>2.0.0</AssemblyVersion>
32+
<FileVersion>2.0.0</FileVersion>
3333
<LangVersion>11</LangVersion>
3434
</PropertyGroup>
3535

36+
<PropertyGroup>
37+
<!-- avoids IgnoresAccessChecksToAttribute warnings -->
38+
<PublicizerRuntimeStrategies>Unsafe</PublicizerRuntimeStrategies>
39+
</PropertyGroup>
40+
<ItemGroup>
41+
<PackageReference Include="Krafs.Publicizer" Version="2.2.1" />
42+
<Publicize Include="Assembly-CSharp;UnityEngine.UI" />
43+
</ItemGroup>
44+
3645
<ItemGroup>
37-
<PackageReference Include="HarmonyX" Version="2.10.1">
38-
<PrivateAssets>all</PrivateAssets>
39-
<ExcludeAssets>runtime</ExcludeAssets>
46+
<!-- Assets need to be private / included for testing purposes. Do not ship them-->
47+
<PackageReference Include="HarmonyX" Version="2.10.1">
4048
</PackageReference>
4149

4250
<Reference Include="Assembly-CSharp">
43-
<Private>False</Private>
51+
<Private>True</Private>
4452
</Reference>
4553
<Reference Include="IRBTModUtils">
4654
<HintPath>$(DeployedModPath)\..\IRBTModUtils\IRBTModUtils.dll</HintPath>
47-
<Private>False</Private>
55+
<Private>True</Private>
4856
</Reference>
4957
<Reference Include="UnityEngine.CoreModule">
50-
<Private>False</Private>
58+
<Private>True</Private>
5159
</Reference>
5260
</ItemGroup>
5361

5462
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
5563
<ItemGroup>
56-
<PackageReference Include="MSTest.TestAdapter" Version="2.1.1" />
57-
<PackageReference Include="MSTest.TestFramework" Version="2.1.1" />
58-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
59-
<PackageReference Include="MSTest.TestAdapter" Version="1.4.0" />
60-
<PackageReference Include="MSTest.TestFramework" Version="1.4.0" />
64+
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
65+
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
66+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
6167
</ItemGroup>
6268

6369
<ItemGroup>

LowVisibility/LowVisibilityTests/MimeticTests.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
using BattleTech;
2-
using Harmony;
3-
using LowVisibility;
1+
using LowVisibility;
42
using LowVisibility.Helper;
53
using LowVisibility.Object;
64
using Microsoft.VisualStudio.TestTools.UnitTesting;
7-
using System;
85
using UnityEngine;
96

107
namespace LowVisibilityTests
@@ -18,7 +15,7 @@ public void TestMimetic_Visibility_NoDecay()
1815
{
1916
Mech attacker = TestHelper.BuildTestMech();
2017
Mech target = TestHelper.BuildTestMech();
21-
18+
2219
target.CurrentPosition = new Vector3(0f, 0, 0);
2320
Traverse previousPositionT = Traverse.Create(target).Field("previousPosition");
2421
previousPositionT.SetValue(new Vector3(0f, 0f, 0f));

LowVisibility/LowVisibilityTests/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using System.Reflection;
2-
using System.Runtime.CompilerServices;
3-
using System.Runtime.InteropServices;
1+
using System.Runtime.InteropServices;
42

53
[assembly: ComVisible(false)]
64

LowVisibility/LowVisibilityTests/SignatureTests.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
using BattleTech;
2-
using Harmony;
3-
using LowVisibility;
1+
using LowVisibility;
42
using LowVisibility.Helper;
53
using LowVisibility.Object;
64
using Microsoft.VisualStudio.TestTools.UnitTesting;
7-
using System;
85
using UnityEngine;
96

107
namespace LowVisibilityTests
@@ -51,7 +48,7 @@ public void TestTargetSignature_ECMShield1()
5148

5249
EWState attackerState = new EWState(attacker);
5350
EWState targetState = new EWState(target);
54-
51+
5552
Assert.AreEqual(0.90f, SensorLockHelper.GetTargetSignature(target, attackerState));
5653
}
5754

@@ -153,7 +150,7 @@ public void TestTargetSignature_ECMShield3_Narc5()
153150
// ECM shield = 3 * .1 => 0.3
154151
// Narc mod = 0.5 - ECMShield (0.3) => 0.2
155152
// Sigs are multiplicative, so: (1.0 - 0.3) * (1.0 + 0.2) = 0.84
156-
Assert.AreEqual(0.84f, SensorLockHelper.GetTargetSignature(target, attackerState));
153+
Assert.AreEqual(0.84f, SensorLockHelper.GetTargetSignature(target, attackerState), 0.001);
157154
}
158155

159156
[TestMethod]
@@ -184,7 +181,7 @@ public void TestTargetSignature_Tag8_Mimetic6()
184181

185182
// <maxCharges>_<visibilityModPerCharge>_<attackModPerCharge>_<hexesUntilDecay>
186183
target.StatCollection.Set(ModStats.MimeticEffect, "3_0.2_1_2");
187-
184+
188185
target.CurrentPosition = new Vector3(0f, 0, 0);
189186
Traverse previousPositionT = Traverse.Create(target).Field("previousPosition");
190187
previousPositionT.SetValue(new Vector3(0f, 0f, 0f));
@@ -206,7 +203,7 @@ public void TestTargetSignature_Tag8_Mimetic6_ECMShield3()
206203

207204
// <signatureMod>_<detailsMod>_<attackMod>
208205
target.StatCollection.Set(ModStats.TagEffect, "0.8_2_2");
209-
206+
210207
// <maxCharges>_<visibilityModPerCharge>_<attackModPerCharge>_<hexesUntilDecay>
211208
target.StatCollection.Set(ModStats.MimeticEffect, "3_0.2_1_2");
212209

LowVisibility/LowVisibilityTests/StealthSignatureTests.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
using BattleTech;
2-
using LowVisibility;
1+
using LowVisibility;
32
using LowVisibility.Helper;
43
using LowVisibility.Object;
54
using Microsoft.VisualStudio.TestTools.UnitTesting;
6-
using System;
75

86
namespace LowVisibilityTests
97
{

LowVisibility/LowVisibilityTests/StealthTests.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
using BattleTech;
2-
using LowVisibility;
3-
using LowVisibility.Helper;
1+
using LowVisibility;
42
using LowVisibility.Object;
53
using Microsoft.VisualStudio.TestTools.UnitTesting;
6-
using System;
74

85
namespace LowVisibilityTests
96
{
@@ -24,7 +21,7 @@ public void TestStealthAttackMod_Bonuses()
2421

2522
Weapon weapon = TestHelper.BuildTestWeapon(0, 60, 120, 240, 480);
2623

27-
Assert.AreEqual(0, targetState.StealthAttackMod(attackerState, weapon, 30));
24+
Assert.AreEqual(0, targetState.StealthAttackMod(attackerState, weapon, 30));
2825
Assert.AreEqual(0, targetState.StealthAttackMod(attackerState, weapon, 60));
2926
Assert.AreEqual(1, targetState.StealthAttackMod(attackerState, weapon, 90));
3027
Assert.AreEqual(1, targetState.StealthAttackMod(attackerState, weapon, 120));

LowVisibility/LowVisibilityTests/TestGlobalInit.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
using IRBTModUtils.Logging;
22
using Microsoft.VisualStudio.TestTools.UnitTesting;
3-
using System;
4-
using System.Collections.Generic;
5-
using System.Linq;
6-
using System.Text;
7-
using System.Threading.Tasks;
83

94
namespace LowVisibilityTests
105
{
@@ -14,7 +9,7 @@ public static class TestGlobalInit
149
[AssemblyInitialize]
1510
public static void TestInitialize(TestContext testContext)
1611
{
17-
LowVisibility.Mod.Log = new DeferringLogger(testContext.TestResultsDirectory,
12+
LowVisibility.Mod.Log = new DeferringLogger(testContext.TestResultsDirectory,
1813
"lowvis_tests", "LVT", true, true);
1914

2015
LowVisibility.Mod.Config = new LowVisibility.ModConfig();

LowVisibility/LowVisibilityTests/TestHelper.cs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
1-
using BattleTech;
2-
using Harmony;
3-
using LowVisibility;
1+
using LowVisibility;
42
using System;
5-
using System.Collections.Generic;
6-
using System.Linq;
73
using System.Reflection;
8-
using System.Text;
9-
using System.Threading.Tasks;
104

115
namespace LowVisibilityTests
126
{
@@ -36,7 +30,7 @@ private static AbstractActor InitAbstractActor(AbstractActor actor)
3630

3731
ConstructorInfo constantsCI = AccessTools.Constructor(typeof(CombatGameConstants), new Type[] { });
3832
CombatGameConstants constants = (CombatGameConstants)constantsCI.Invoke(new object[] { });
39-
33+
4034
VisibilityConstantsDef visibilityDef = constants.Visibility;
4135
visibilityDef.UseAsymmetricalSensors = true;
4236
visibilityDef.ShutDownSignatureModifier = 0.5f;
@@ -54,7 +48,7 @@ private static AbstractActor InitAbstractActor(AbstractActor actor)
5448

5549
// Init any required stats
5650
actor.StatCollection = new StatCollection();
57-
51+
5852
// ModStats
5953
actor.StatCollection.AddStatistic<int>(ModStats.TacticsMod, 0);
6054
actor.StatCollection.AddStatistic<int>(ModStats.CurrentRoundEWCheck, 0);
@@ -73,7 +67,7 @@ private static AbstractActor InitAbstractActor(AbstractActor actor)
7367
actor.StatCollection.AddStatistic<bool>(ModStats.SharesVision, false);
7468
actor.StatCollection.AddStatistic<bool>(ModStats.NightVision, false);
7569
actor.StatCollection.AddStatistic<int>(ModStats.DisableSensors, 2);
76-
70+
7771
// Vanilla
7872
actor.StatCollection.AddStatistic<float>("SensorSignatureModifier", 1.0f);
7973

@@ -92,8 +86,8 @@ private static Pilot BuildTestPilot()
9286
return pilot;
9387
}
9488

95-
public static Weapon BuildTestWeapon(float minRange = 0f, float shortRange = 0f,
96-
float mediumRange = 0f, float longRange = 0f, float maxRange = 0f )
89+
public static Weapon BuildTestWeapon(float minRange = 0f, float shortRange = 0f,
90+
float mediumRange = 0f, float longRange = 0f, float maxRange = 0f)
9791
{
9892
Weapon weapon = new Weapon();
9993

LowVisibility/LowVisibilityTests/VisibilityTests.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
using BattleTech;
2-
using Harmony;
3-
using LowVisibility;
4-
using LowVisibility.Helper;
1+
using LowVisibility.Helper;
52
using LowVisibility.Object;
63
using Microsoft.VisualStudio.TestTools.UnitTesting;
7-
using System;
84

95
namespace LowVisibilityTests
106
{

0 commit comments

Comments
 (0)