2012-06-03 34 views
1

Visual Studio 2010中我已經安裝了NUnit的,但它不是在VS 2010的工具菜單顯示請幫我NUnit的在工具選項

+0

你安裝了什麼軟件包? –

回答

0

您可以通過@Bili發現的將NUnit集成到VS 2010中。我更喜歡使用Resharper的測試跑步者(但這花費了很多錢)。 NCrunch是一個免費的插件(現在),它增強了NUnit的測試。除了運行單元測試之外,它還提供代碼覆蓋。我相信這是一個NuGet包。

http://www.ncrunch.net/

0

我寫了一個運行NUnit的測試一些宏。 它應該是私人的,所以我有一些假設,它不是「乾淨」(我沒有長時間工作)......但如果你想跟隨他們,你可以得到一個非常舒適的方式來「整合「在VS測試

假設:

  • 你必須在PATH環境變量
  • 測試項目NUnit的bin文件夾‘someName’將在‘someName.Test’項目(集成測試 - 「someName.integration」)

如果你認爲它可能使你的工作容易使代碼是在這裏:

Imports System 
    Imports EnvDTE 
    Imports EnvDTE80 
    Imports EnvDTE90 
    Imports EnvDTE90a 
    Imports EnvDTE100 
    Imports System.Diagnostics 
    Imports System.Collections.Generic 
    Imports System.IO 



    Public Module NUnitExtensions 
     Sub AttachToNUnit() 
      Dim attached As Boolean = False 
      Dim proc As EnvDTE.Process 

      For Each proc In DTE.Debugger.LocalProcesses 
       If (Right(proc.Name.ToLower(), 9) = "nunit.exe") Then 
        proc.Attach() 
        attached = True 
        Exit For 
       End If 
      Next 

     End Sub 

     Private Sub RunNunitFile(ByRef dll) 
      Dim args = """" & dll & """" & " /run" 
      System.Diagnostics.Process.Start("nunit.exe", args) 
     End Sub 

     Private Function GetSolutionFiles(ByRef filePattern) As String() 
      Dim solutionDir = System.IO.Path.GetDirectoryName(DTE.Solution.FullName) 
      Dim nunitFiles = System.IO.Directory.GetFiles(solutionDir, filePattern, IO.SearchOption.AllDirectories) 
      Return nunitFiles 
     End Function 

     Private Function GetDllCompilationAttributes(ByRef dllFullPath) As Boolean() 
      Dim ActiveDoc As Document = DTE.ActiveDocument 
      Dim Proj As Project = ActiveDoc.ProjectItem.ContainingProject 
      Dim config As Configuration = Proj.ConfigurationManager.ActiveConfiguration 
      Dim result(2) As Boolean 
      result(0) = False 
      result(1) = False 
      Dim parts = Split(dllFullPath, "\") 
      For Each part As String In parts 
       If part.ToLower() = "obj" Then 
        result(1) = True 
       End If 
       If part.ToLower() = config.ConfigurationName.ToLower() Then 
        result(0) = True 
       End If 
      Next 
      Return result 
     End Function 

     Sub RunNUnit() 

      Dim nunitUnitTestFiles = GetSolutionFiles("*test.dll") 
      Dim nunitIntegrationTestFiles = GetSolutionFiles("*integration.dll") 

      Dim unitTestsAndIntegrationTestFiles As New List(Of String) 

      unitTestsAndIntegrationTestFiles.AddRange(nunitUnitTestFiles) 
      unitTestsAndIntegrationTestFiles.AddRange(nunitIntegrationTestFiles) 

      For Each dll As String In unitTestsAndIntegrationTestFiles 
       Dim dllAttributes = GetDllCompilationAttributes(dll) 
       Dim debug = dllAttributes(0) 
       Dim obj = dllAttributes(1) 

       If debug AndAlso Not obj Then 
        RunNunitFile(dll) 
       End If 

      Next 

     End Sub 

     Sub RunCurrentProjectNUnit() 

      Dim ActiveDoc As Document = DTE.ActiveDocument 
      Dim Proj As Project = ActiveDoc.ProjectItem.ContainingProject 
      Dim config As Configuration = Proj.ConfigurationManager.ActiveConfiguration 

      Dim projectFileName = Proj.FullName 
      Dim projectPath = Path.GetDirectoryName(projectFileName) 
      Dim dllName = Proj.Name 

      If (Not projectPath.ToLower().EndsWith(".test")) Then 
       projectPath += ".Test" 
       dllName += ".Test" 
      End If 

      Dim testDllPath = String.Format("{0}\bin\{1}\{2}.dll", projectPath, config.ConfigurationName, dllName) 

      RunNunitFile(testDllPath) 
     End Sub 
    End Module 

確保,如果你把它添加到宏窗口(按Alt + F8),你必須命名代碼文件「NUnitExtensions」,然後你可以將這些宏添加爲工具欄按鈕,例如

0

Visual NUnit擴展名非常有幫助;它增加了一個運行NUnit測試的工具箱。