>

현재 Jenkins 설정의 빌드 노드 중 일부를 Nunit console 3.6.0에서 Nunit console 3.7.0으로 업데이트하려고합니다

이전 Nunit 콘솔에서 우리는 bat call을 통해 사용했습니다 :

"E:\tools\NUnit.Console-3.6.0\nunit3-console.exe" --result="unittests.xml;format=nunit2" "some.dll" "another.dll"

Nunit console 3.6.0에서는 이것이 작동했습니다. 3.7.0에서는 잘못된 인수로 실패합니다 (아래 콘솔 출력 참조). 마녀 매개 변수를 알 수 없으므로 그것이 올바르지 않습니다. 내 지식으로는 제공된 모든 매개 변수가 여전히 3.7.0에서 지원됩니다.

솔루션 내부에서 Nunit 3.9는 NuGet 패키지를 통해 사용됩니다. 이미 3.8로 다운 그레이드를 시도했지만 도움이되지 않았습니다

"E:\tools\NUnit.Console-3.7.0\nunit3-console.exe" --result="unittests.xml;format=nunit2" [list of dll's] 에 대한 전체 로그 :

14:04:18 NUnit Console Runner 3.7.0 
14:04:18 Copyright (c) 2017 Charlie Poole, Rob Prouse
14:04:18 
14:04:19 Runtime Environment
14:04:19    OS Version: Microsoft Windows NT 6.3.9600.0
14:04:19   CLR Version: 4.0.30319.42000
14:04:19 
14:04:19 Test Files
14:04:19     EplanImporterTests\bin\Debug\EplanImporterTests.dll
14:04:19     MachineConfiguratorTests\bin\Debug\MachineConfiguratorTests.dll
14:04:19     TSMFileGeneratorTests\bin\Debug\TSMFileGeneratorTests.dll
14:04:19     TsmBlockTypesTests\bin\Debug\TsmBlockTypesTests.dll
14:04:19     ValidationFrameworkTests\bin\Debug\EplanImporterTests.dll
14:04:19     ValidationFrameworkTests\bin\Debug\TSMFileGeneratorTests.dll
14:04:19     ValidationFrameworkTests\bin\Debug\ValidationFrameworkTests.dll
14:04:19     ValidatorFrameworkTests\bin\Debug\ValidatorFrameworkTests.dll
14:04:19 
14:04:23 
14:04:23 Errors, Failures and Warnings
14:04:23 
14:04:23 1) Error : E:\DEV-BLD-SVR02\workspace\NunitUpdateedbae018\EplanImporterTests\bin\Debug\EplanImporterTests.dll
14:04:23 The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
14:04:23 
14:04:23 Server stack trace: 
14:04:23    at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone& zone, StringHandleOnStack retUrl)
14:04:23    at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence()
14:04:23    at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType)
14:04:23    at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType)
14:04:23    at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
14:04:23    at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed)
14:04:23    at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType)
14:04:23    at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
14:04:23    at System.Security.Policy.Evidence.RawEvidenceEnumerator.MoveNext()
14:04:23    at System.Security.Policy.Evidence.EvidenceEnumerator.MoveNext()
14:04:23    at System.Security.Policy.Evidence.get_Count()
14:04:23    at NUnit.Engine.Services.DomainManager.CreateDomain(TestPackage package)
14:04:23    at NUnit.Engine.Runners.TestDomainRunner.LoadPackage()
14:04:23    at NUnit.Engine.Runners.DirectTestRunner.EnsurePackageIsLoaded()
14:04:23    at NUnit.Engine.Runners.DirectTestRunner.RunTests(ITestEventListener listener, TestFilter filter)
14:04:23    at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
14:04:23    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
14:04:23 
14:04:23 Exception rethrown at [0]: 
14:04:23    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
14:04:23    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
14:04:23    at NUnit.Engine.ITestEngineRunner.Run(ITestEventListener listener, TestFilter filter)
14:04:23    at NUnit.Engine.Runners.ProcessRunner.RunTests(ITestEventListener listener, TestFilter filter)

테스트 할 곳과 다른 모든 dll에 대해 동일한 오류를 반복합니다


  • 답변 # 1

    잘못된 매개 변수는 NUnit Console 명령 행 매개 변수가 아니지만 AppDomain.CurrentDomain.Evidence 를 호출 할 때 .NET Framework 스택의 잘못된 메소드 매개 변수입니다. . 매핑 된 네트워크 드라이브에서 파일 권한을 찾지 못하는 Server 2012의 문제로 인해 발생했을 수 있습니다.

    가장 간단한 해결 방법은 NUnit 콘솔을 실제 드라이브로 옮기거나 NuUnit 패키지로 NUnit 콘솔을 설치하는 것입니다. NuGet 패키지를 사용하려면 테스트 프로젝트 중 하나에 NUnit.Console 패키지를 추가하십시오. 프로젝트가 빌드되면 $(SolutionRoot)\packages\NUnit.ConsoleRunner.3.7.0\tools\nunit3-console.exe 에 설치됩니다 . 테스트를 설정할 때 콘솔 러너 사본을 참조하십시오. 아마도 BAT 파일을 수정하여 상대 경로를 사용하십시오.

    패키지 아래의 디렉토리는 NUnit.ConsoleRunner 입니다.  설치된 패키지 NUnit.Console 가 아님 . NUnit.Console 때문입니다  러너 NUnit.ConsoleRunner 를 설치하는 메타 패키지입니다  필요한 NUnit 2 결과 형식에 대한 지원과 같은 다양한 확장 기능이 있습니다.

  • 이전 javascript - 아약스를 사용하여 간단한 문자열을 반환하는 웹 메서드
  • 다음 Magento2 사용자 정의 제품 검토 확장