我已經將一些測試用例與單元測試關聯在一個項目中。該項目將構建並複製到共享上的放置位置。當我去運行這些測試時,由於來自作爲這些測試的一部分而包含的非託管DLL的System.DllNotFoundExceptions,我得到了很多失敗?Microsoft測試管理器如何運行自動單元測試?
有誰知道爲什麼發生這種情況?我有一個實驗室環境設置,測試(假設)在該機器上運行。什麼時候這些測試運行的工作流程是什麼? TestController是否將單元測試DLL複製到實驗室環境中的本地計算機上,還是試圖直接從構建文件夾中運行?
以下是錯誤的堆棧跟蹤。請注意,c:\ Builds \不在測試機器上,這對我來說似乎頗爲懷疑。
Test method OutputProcessing.Integration.PanaceaOutputG1.ReactorCoreSimulationResults threw exception:
System.DllNotFoundException: Unable to load DLL 'ge.gnf.cedar06.c.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Gnf.Cedar.NativeMethods.ATACHF(Int32& fileCode, String fileName, Int32& openMode, Int32[] stat)
Gnf.Cedar.ManagedMethods.Atachf(String fileName, FileAccess access, Int32[] stat)
Gnf.Cedar.Cypress.CedarFile.OpenCedarFile(String path, FileAccess access, FileSizeHint hint, AuditMode auditMode, ChainingOrderOption chainingOrder, Boolean createIfMissing)
Gnf.Cedar.Cypress.CedarFile..ctor(String path, FileMode mode, FileAccess access, FileSizeHint hint, AuditMode auditMode, ChainingOrderOption chainingOrder)
Gnf.Cedar.Cypress.CedarFile..ctor(String path, FileMode mode, FileAccess access)
GE.GNF.Acumen.Cedar.DataAccess.CedarRepository.GetCedarFile() in c:\Builds\11\ACUMEN\DEV Test Build\src\Acumen\Cedar\Cedar.DataAccess\CedarRepository.cs: line 67
GE.GNF.Acumen.Cedar.DataAccess.CedarRepository..ctor(String fullFilePath) in c:\Builds\11\ACUMEN\DEV Test Build\src\Acumen\Cedar\Cedar.DataAccess\CedarRepository.cs: line 40
GE.GNF.Acumen.Cedar.DataAccess.CedarRepository..ctor(String fullFilePath, String qualifier) in c:\Builds\11\ACUMEN\DEV Test Build\src\Acumen\Cedar\Cedar.DataAccess\CedarRepository.cs: line 43
OutputProcessing.Integration.PanaceaOutputG1.ReactorCoreSimulationResults() in c:\Builds\11\ACUMEN\DEV Test Build\src\Acumen\Auto Integration Tests\OutputProcessing.Integration\PanaceaOutputG1.cs: line 58
請問[DeploymentItem]屬性還工作嗎? –
是的,[DeploymentItem]也會起作用。 – Elena
您可否詳細介紹一下如何使用測試設置上的部署選項?當我在那裏添加一個文件時,它使用我機器的絕對路徑。那甚至可以在自動化環境中工作? – julealgon