2016-03-11 59 views
1

我正在嘗試使用SpecsFor.Mvc來執行端到端測試。我實施了以下測試:爲什麼nUnit不執行我的SpecsFor.Mvc測試?

namespace Features 
{ 
    class AddEvents 
    { 

     public class when_a_user_adds_an_event: SpecsFor<MvcWebApp> 
     { 
      protected override void Given() 
      { 
       SUT.NavigateTo<HomeController>(c => c.Index()); 
      } 
      protected override void When() 
      { 

       SUT.Browser.FindElementById("btn-add-event").Click(); 
       SUT.FindFormFor<Event>() 
        .Field(f => f.Name).SetValueTo("Alex") 
        .Field(f => f.Date).SetValueTo("01/01/2013") 
        .Submit(); 
      } 

      [Test] 
      public void then_event_should_be_added() 
      { 
       Assert.Fail(); 
      } 
     } 
    } 
} 

問題是,nUnit未發現此測試並報告未找到任何測試。我有以下設置:

  • NUnit控制檯亞軍3.2版
  • 的Visual Studio nUnit3測試適配器版本3.0.8.0(兩人都沒有找到測試)
  • NUnit的3.2.0版本
  • Specsfor是4.4.0.0版本
  • Specsfor.Mvc是3.4.0.0版本
  • 所有的項目建設與.net 4.6

任何想法爲什麼這個測試被測試運動員忽略?

+1

你是否缺少類中的[TestFixture]屬性?這將在嵌套類的when_a_user_adds_an_event裏面。 – Andez

+0

這不是問題,因爲SpecsFor基類具有[TestFixture]屬性。 – BitSchupser

回答

3

有關於SpecsFor.MVC報告了一個NUnit的問題,請參閱https://github.com/nunit/nunit/issues/1277

至於我們(NUnit的人)可以告訴SpecsFor不支持NUnit的3.0。但是,這是基於對其代碼的粗略檢查。我們沒有人真的很熟悉它。

坦率地說,這個問題不會有太大變化,除非有人對SpecsFor有深入的瞭解並隨意提供建議。

+0

感謝您的回答,SpecsFor問題跟蹤器(https://github.com/MattHoneycutt/SpecsFor/issues/87)中也存在相應的問題,它顯示我遇到的問題: Specsfor.Mvc Nuget包對nUnit 3.0具有依賴性,但不支持它 - 它需要nUnit 2.x. – BitSchupser

+1

查理是正確的,SpecsFor不支持NUnit 3.0。它實際上取決於NUnit 2.x,而不是3.0。我會更新NuSpec,以便它在任何時候都不會讓你升級到NUnit 3.0 ... –