我使用了Jeff的UnitTestDetector的變體。我不想檢查單元測試組件,並想控制哪些單元測試會考慮與否。
所以我創建了一個簡單的類,IsInUnitTest默認爲false。 然後在我想要運行條件代碼的單元測試類中添加TestInitializer和TestCleanup,我相應地設置了bool。
然後在我的常規代碼中,我可以使用UnitTestDetector。IsInUnitTest
簡單UnitTestDetector類:
/// <summary>
/// Detects if we are running inside a unit test.
/// </summary>
public static class UnitTestDetector
{
static private bool _isInUnitTest = false;
public static bool IsInUnitTest
{
get { return _isInUnitTest; }
set { _isInUnitTest = value; }
}
}
單元測試來測試這個東西:
[TestClass]
public class UnitTestDetectorTest_WithoutIsInUnitTest
{
[TestMethod]
public void IsInUnitTest_WithoutUnitTestAttribute_False()
{
bool expected = false;
bool actual = UnitTestDetector.IsInUnitTest;
Assert.AreEqual(expected, actual);
}
}
[TestClass]
public class UnitTestDetectorTest_WithIsInUnitTest
{
[TestInitialize()]
public void Initialize()
{
UnitTestDetector.IsInUnitTest = true;
}
[TestCleanup()]
public void Cleanup()
{
UnitTestDetector.IsInUnitTest = false;
}
[TestMethod]
public void IsInUnitTest_WithUnitTestAttribute_True()
{
bool expected = true;
bool actual = UnitTestDetector.IsInUnitTest;
Assert.AreEqual(expected, actual);
}
}
狀況的代碼:
if (UnitTestDetector.IsInUnitTest)
return "Hey I'm in the unit test :)";
這工作。你甚至在github中包含bin&obj? :-) –
我並沒有試圖做到這一點,而且我對將東西放在github上很新。 :-) – Jeff