xUnit 테스트가 Jenkins에서 실행됩니다.xenit가 Jenkins : BadImageFormatException에서 실패합니다.
x86/x64 디버그/릴리스 구성에 대한 테스트를 실행합니다. Jenkins에서 실행 중일 때 일부 구성이 오류와 함께 실패합니다.
실행 명령 및 오류 메시지는 다음과 같습니다
packages\xunit.runner.console.2.1.0\tools\xunit.console.exe bin\x86\Release\MyDllName.dll -verbose -parallel none -diagnostics
xUnit.net Console Runner (64-bit .NET 4.0.30319.42000)
System.BadImageFormatException: Could not load file or assembly 'MyDllName, Version=1.3.549.4300, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.
<Absolute-path-to-file>\RunTests.1.proj(59,5): error MSB3073: The command "packages\xunit.runner.console.2.1.0\tools\xunit.console.exe bin\x86\Release\MyDllName.dll -verbose -parallel none -diagnostics" exited with code 1.
내가 젠킨스 작업을 실행하는 데 사용으로 내가 명령 줄에서 같은 배치 파일을 실행, 모든 것이 잘 작동합니다.
젠킨스를 서비스 및 독립 실행 형 응용 프로그램으로 실행하려고했습니다. 두 경우 모두 오류가 발생했습니다.
이 DLL에서 ILSpy
을 실행하려고 시도했지만 누락 된 종속성과 관련된 오류 메시지를 찾지 못했습니다.
젠킨스의 모든 구성에서 xUnit
을 성공적으로 실행하는 방법은 무엇입니까?
내 dll은 .NET 4.6.1로 작성되었습니다.
젠킨스 버전 : 2.32.1,하지만 이전 버전과 동일한 문제가 있습니다.
서버 운영 체제 : Windows 2008 R2 Enterprise.
xunit.runner.console : 2.1.0
를 구축? 명령 줄에서 같은 스크립트를 실행해도 괜찮습니다. x86/Release는 잘 작동합니다 (대부분의 경우 :) - 정확한시기는 아직 조사 할 필요가 없습니다.) x86/Debug는 항상 오류를 생성합니다. – sergtk
@sergtk 문제의 특정 Jenkins (또는 심지어 xUnit)가 있습니다. 이것은 저수준의 .NET 문제입니다. "I * * x86 프로세스에 있어야합니다"라는 .NET DLL과 .NET "물론이게 이미 x64 프로세스이기 때문에 프로세스를 변경하거나 프로세스를 변경하는 것이 두렵습니다." 디버그 및 릴리스 빌드 사이에 (AnyCpu 또는 Any) 설정에 변형이있을 가능성이 있습니다 (settigng는 구성에 따라 다릅니다) –
xunit.console.x86.exe를 실행하면 문제가 해결됩니다. xunit.console.exe가 Jenkins에서만 x64에서 작동하지 않는 이유를 모두 이해할 수는 없지만 어쨌든 문제가 해결되었습니다! – sergtk