1

Nunit をインストールしましたが、VS 2010 の [ツール] メニューに表示されません。助けてください

4

4 に答える 4

0

@Bili が見つけたものを介して、NUnit を VS 2010 に統合できます。私は Resharper のテスト ランナーを使用することを好みます (ただし、それには多額の費用がかかります)。NCrunch は、NUnit のテストを強化する無料のプラグイン (今のところ) です。単体テストの実行に加えて、コード カバレッジも提供します。NuGet パッケージだと思います。

http://www.ncrunch.net/

于 2012-06-03T13:06:40.267 に答える
0

Visual NUnit拡張機能は非常に役立ちます。NUnit テストを実行するためのツールボックスを追加します。

于 2012-06-03T14:28:04.017 に答える
0

NUnit を VS 2010 に統合するには、ここをクリックしてください

于 2012-06-03T12:22:15.433 に答える
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」という名前を付ける必要があることを確認してください。その後、これらのマクロをたとえばツールバー ボタンとして追加できます。

于 2012-06-03T13:37:08.200 に答える