[英]How to run one NUnit test under a user with certain privileges
是否可以在特定用戶帳戶下的測試套件中運行其中一項測試? 我需要以某種方式模擬用戶權限問題。
runas.exe /user:DOMAIN\someUser "nunit-console.exe somelibrary.dll"
我已將關鍵點合並為一個答案,並提供了所涉及步驟的概述。
我還添加了有關使用新的 NUnit 3“NUnit-Lite”單 exe 測試 + 運行程序以及使用 Windows 任務計划程序作為在用戶帳戶下運行測試的簡單機制的信息。
Darin Dimitrov 的回答是關於金錢的整體,但評論中隱藏了一些很好的觀點,有些人可能需要更多關於如何設置的指導。 另外,當他寫下他的答案時,NUnit-Lite 不可用。
第 1 部分:將需要在特定用戶帳戶下運行的測試放入它們自己的單獨程序集中。 大致步驟:
例如,在 Visual Studio 中,您將選擇 File/New Project,然后選擇 NUnit 項目模板(在 Framework 或 .NET Core 中,視情況而定),適當地命名項目。
將涉及的特定測試的代碼移動到您剛剛創建的新程序集中。 使用您在 Visual Studio 中登錄的帳戶獲取要構建和運行的程序集,並提供預期結果。 暫時不要擔心其他用戶帳戶。
選項:使用 NUnit-Lite 單個 EXE 測試運行器打包方法,NUnit3 中的新方法,如此處所述: https ://docs.nunit.org/articles/nunit/running-tests/NUnitLite-Runner.html
第 2 部分:將測試程序集部署到您將運行它的位置,以便能夠使用 nunit-console.exe 程序在程序集中運行測試。
第 3 部分:設置以在特定用戶帳戶下執行 nunit-console 或您的 NUnit-Lite 單個 EXE。
選項 1:使用“runas”方法 runas.exe /user:DOMAIN\\someUser "nunit-console.exe somelibrary.dll" 或 runas.exe /user:DOMAIN\\someUser "MyTestsAndNUnitLiteRunner.exe"
我相信你會啟動一個命令提示符; 在 Windows 10 中,它將是開始/(鍵入 CMD),然后您將右鍵單擊“命令提示符”選項,並選擇“以不同用戶身份運行”,然后輸入特定用戶的用戶 ID 和憑據。
在某些版本的 Windows 10 中,您不會看到“以不同用戶身份運行”選項。 如果發生這種情況,請參閱這篇文章: https : //superuser.com/questions/1045158/how-do-you-run-as-a-different-user-from-the-start-menu-in-windows-10
選項 2:使用 Windows 任務計划程序設置在所需用戶帳戶下運行的作業。 在任務設置過程中,您將需要用戶帳戶登錄名和憑據。 一旦設置了計划任務,您只需右鍵單擊它並選擇“運行”即可立即運行它。 命令行將類似於:“nunit-console.exe” somelibrary.dll 或者,對於 NUnit-Lite:“MyTestsAndNUnitLiteRunner.exe”
在任務設置中,如果所涉及的路徑中有空格,您可能需要使用文件夾名稱和引號。
第 4 部分:使用您選擇的方法運行測試程序集,並查看輸出。
第 5 部分:迭代直到成功; 調整測試代碼並重復直到成功。
就個人而言,我更喜歡 Windows 任務計划程序方法而不是 runas 方法。 一旦設置好,對我來說,迭代測試代碼並重試測試會更快更容易。
正如我所提到的,NUnit3 有一個新的“NUnit-Lite”運行器,可以很容易地將 NUnit 和您的測試打包到一個單一的 EXE 控制台應用程序中。 關於這樣做的文檔在這里: https : //docs.nunit.org/articles/nunit/running-tests/NUnitLite-Runner.html
總的來說,我更喜歡 NUnit-Lite 單一 EXE 方法,而不是 NUnit-Console 方法,結合 Windows 任務計划程序。
對 PowerShell 和批處理文件非常熟悉的人可能更喜歡 RunAs 方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.