Wie kann ich von benutzerdefinierten iApplyTotest-Attribute auf Testunterrichtszustand zugreifen?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Wie kann ich von benutzerdefinierten iApplyTotest-Attribute auf Testunterrichtszustand zugreifen?

Post by Guest »

Ich habe eine Testklasse mit TestFixTuresource mit zwei Werten: "Einheit" und "Integration". Diese Werte sind Werte des Modus. Basierend auf diesem Modus setzt die Klasse Abhängigkeiten als Mocks oder reale Implementierungen fest. Einige Klassentests sind für beide Modi tatsächlich, während andere nur für einen von ihnen tatsächlich sind. Ich versuche zu finden, wie man einige Tests abhängig vom Moduswert überspringt oder ignoriert. Also möchte ich so etwas wie das folgende < /p>
machen[TestFixtureSource(nameof(UnitOrIntegration))]
class Tests(string Mode)
{
[SetUp]
void Setup()
{
if (Mode == "Unit") { ... }
if (Mode == "Integration") { ... }
}

[Test] //actual for both modes
void Test1() { ... }

[Test][WhenModeIs("Unit")]
void Test2() { ... }

[Test][WhenModeIs("Integration")]
void Test3() { ... }
}

< /code>
Ich habe etwas gefunden, das aussieht, wie es helfen kann < /p>
[AttributeUsage(
AttributeTargets.Method,
AllowMultiple = false,
Inherited = false)]
public class WhenModeIsAttribute(string Mode)
: NUnitAttribute, IApplyToTest
{
public void ApplyToTest(Test test)
{
if (/* I need check mode here */)
{
test.RunState = RunState.Ignored;
test.Properties.Set(
PropertyNames.SkipReason,
$"It is not actual for {Mode}");
}
}
}
< /code>
, aber ich kann keinen Weg finden, auf den Moduswert zuzugreifen. Wie mache ich das?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post