我們使用VS 2008和Resharper 5.1(C#)和NUnit 2.4.8。Resharper Testrunner在沒有[TestFixture]的情況下運行一個類 - 爲什麼?
我有這個基本測試類進行確實不具有[TestFixture]
屬性:
public class BaseTestCasesFixture: BaseFixture
{
protected virtual int Calculate(DatePeriod period)
{
throw new NotSupportedException("Should be implemented by inheriter");
}
[Test]
public void Test1()
{
Assert.That(Calculate(new DatePeriod(2006, 2, 28, 2007, 2, 28)), Is.EqualTo(361));
}
我有兩個後代的其從該基類繼承和實現該方法的兩個版本將被測試:
[TestFixture]
public class RealTestCaseFixture1 : BaseTestCasesFixture
{
protected override int Calculate(DatePeriod period)
{
return period.DaysAsWeNeedThem;
}
現在,當我跑我的構建服務器(竹)在這些測試中,似乎一切就好了工作 - 在Visual Studio中運行,但它們與ReSharper的5.1測試運行器,RS INSI上運行我的BaseTestCasesFixture
(NO它[TestFixture]
!!)和悲慘STS失敗(15倍!)....
任何想法,爲什麼?這是一個Resharper Testrunner錯誤嗎?有誰知道是固定在6.0/6.1?
更新:剛剛與最新的RS 6.1測試 - 仍然是同樣的問題:-(
是的,這正是我得到的迴應來自ReSharper團隊,當時我爲這種行爲提出了一個錯誤 - 它按照設計工作,NUnit將運行該測試夾具,因此ReSharper也是如此。是的,我可以證實,將其抽象化會告訴ReSharper不要運行它。 – 2012-01-10 20:14:07
是的,謝謝 - 這似乎做到了!我仍然認爲這是RS的一個錯誤,用來「執行」一個有**沒有標記過[TestFixture]屬性的類 - 用JetBrains提交了一個錯誤報告,我們會看看在這個問題上是否有任何事情可以完成。 – 2012-01-10 20:43:45
@JoeWhite:奇怪 - 因爲在我的情況下,在**構建服務器**,NUnit不**運行該類,因爲它沒有標記[TestFixture] ..... – 2012-01-10 20:44:24