成功編譯後有沒有簡單的方法可以自動運行我的單元測試?如何在編譯後自動運行我的測試?
回答
反過來想一想:不是每次編譯都要運行單元測試,而是經常養成單元測試的習慣。
如果您在Visual Studio中使用MSTest,則可以像運行所有單元測試一樣簡單,如Ctrl + R,A。當你這樣做時,VS在運行測試之前自動編譯代碼。
更好,謝謝 – user261258 2010-01-28 22:27:55
是的,但可能你不想。這通常在CI服務器(即構建服務器)上或臨時基礎上完成。
但是,如果你真的想嘗試一下,你可以在VS中執行測試作爲「後期製作」任務。你可以指定一個命令行來運行(即nunit),然後將其引導到適當的lib(有特殊的變量,可以讓你鏈接到剛建立的項目dll)。
命令行是什麼? – user261258 2010-01-28 22:01:04
可執行文件。右鍵單擊項目的屬性,然後單擊「構建事件」。在後期構建中,您可以編寫如下內容:'「$(ProjectDir).. \ nant \ nant」-buildfile:「$(ProjectDir).. \ local.deploy.task」-D:startingPath =「$(ProjectDir) 「(這是來自我們的一個項目)。 – 2010-01-28 22:03:07
你也可以做到這一點
創建一個批處理文件與您期望的參數運行MSTEST並使用一個固定的結果文件名。使用結果文件上的START命令將其加載到IDE中。將批處理文件保存在與解決方案相同的路徑中。
REM刪除舊的結果文件
德爾TestResults \ auto.trx
MSTEST /testcontainer:MyApp\UnitTest\bin\x86\debug\MyUnitTest.dll /類別: 「每晚」 /resultsfile:TestResults\auto.trx
開始TestResults \ auto.trx調用此批(我使用一個單獨的線程,這樣我可以保持在IDE編碼的距離)文件中的宏每次構建事件之後
在你EnvironmentEvents一個DD下面的代碼 「全球標誌,表示如果測試應該運行
私人runTests由於布爾
Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
runTests = True
End Sub
Private Sub BuildEvents_OnBuildProjConfigDone(ByVal Project As String, ByVal ProjectConfig As String, ByVal Platform As String, ByVal SolutionConfig As String, ByVal Success As Boolean) Handles BuildEvents.OnBuildProjConfigDone
If Not Success Then
runTests = False
DTE.ExecuteCommand("Build.Cancel")
End If
End Sub
Private Sub BuildEvents_OnBuildDone(_
ByVal Scope As EnvDTE.vsBuildScope, _
ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
If (Action = vsBuildAction.vsBuildActionBuild Or Action = vsBuildAction.vsBuildActionRebuildAll) And _
Scope = vsBuildScope.vsBuildScopeSolution And _
runTests Then
Dim thrd As New System.Threading.Thread(AddressOf threadRunTests)
thrd.Start()
End If
End Sub
Private Sub threadRunTests()
path = System.IO.Path.GetDirectoryName(DTE.Solution.FullName)
Environment.CurrentDirectory = path
DTE.StatusBar.Text = "Running tests..."
Shell(path & "\RunNightlyTests.bat", AppWinStyle.MinimizedNoFocus, True)
DTE.StatusBar.Text = "Finished Running tests"
End Sub
- 1. 如何從dev_appserver自動編譯後運行golang測試
- 2. NUnit 3.2:編譯後自動運行測試(Windows)
- 3. Maven的運行測試,然後編譯然後其他測試
- 4. EAR編譯後運行測試
- 5. 編譯後自動運行corflags
- 6. 編譯時自動運行單元測試
- 7. 在一切都變綠之後,我如何讓自動測試/測試不運行完整的測試套件?
- 8. 如何自動運行Ruby測試?
- 9. 如何在沒有運行SBT的情況下編譯測試
- 10. 如何在編譯時在netbeans和jenkins中運行junit測試?
- 11. 我們如何在.net中自動運行測試方法?
- 12. 軌道中的自動測試如何運行集成測試?
- 13. ZenTest自動測試不運行測試,
- 14. ZenTest自動測試未運行測試
- 15. 自動運行硒測試
- 16. 在測試更改或測試類更改後自動運行Scala測試
- 17. gradle編譯但不運行測試
- 18. 如何手動指定要在自動測試中運行的測試文件?
- 19. Microsoft測試管理器如何運行自動單元測試?
- 20. 我如何運行ng測試,然後在測試通過Angular後ng build
- 21. Maven2的編譯我的測試,但並不運行它們
- 22. 如何在運行R#測試運行器之前用Babel翻譯JS測試?
- 23. 如何編譯和運行我的Maven單元測試Java 8,同時讓我的代碼編譯爲Java 7
- 24. 如何使自動測試,只有當我按運行集成測試^ C
- 25. 每次成功編譯後運行單元測試
- 26. TDD爲C.如何編譯和運行我的第一個測試與CppUTest?
- 27. 如何編譯和運行vmmlib測試程序?
- 28. 如何運行使用buildbot無需編譯測試/ buildning項目
- 29. Maven - 如何編譯測試而不運行它們?
- 30. 如何用`webpack`編譯並運行`tap`測試?
一些測試框架爲你做這個。在NUnit中,您可以設置選項以在組件更改時重新加載和重新運行測試。 – Ray 2010-01-28 22:18:29