@echo off setlocal REM ============================================================ REM Integration tests runner (Navisworks plugin + HTTP 18777). REM REM Usage: REM run-integration-tests.bat -> full integration set REM run-integration-tests.bat "" -> subset (e.g. "FullyQualifiedName~RealObjectAnimation") REM REM Prereq: main Navisworks instance loaded with plugin and REM test HTTP service ready at 127.0.0.1:18777. REM (start via start-navisworks.bat, or run build-and-deploy.bat REM which launches Navisworks after deploy) REM ============================================================ set FILTER=%1 if "%FILTER%"=="" set FILTER=TestCategory=NavisworksIntegration echo Building NavisworksTransport.UnitTests (integration filter: %FILTER%)... set MSBUILD_PATH="C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" if not exist %MSBUILD_PATH% ( set MSBUILD_PATH="C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" ) if not exist %MSBUILD_PATH% ( echo MSBuild not found. Please install Visual Studio 2022 or Build Tools. exit /b 1 ) set VSTEST_PATH="C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" if not exist %VSTEST_PATH% ( set VSTEST_PATH="C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" ) if not exist %VSTEST_PATH% ( echo vstest.console.exe not found. Please install Visual Studio 2022 test tools. exit /b 1 ) REM 动态查找 MSTest adapter(避免包版本升级后硬编码路径失效) for /d %%d in ("packages\MSTest.TestAdapter.*") do set TEST_ADAPTER_BASE=%%~fd if not defined TEST_ADAPTER_BASE ( echo MSTest adapter package not found under packages\MSTest.TestAdapter.* exit /b 1 ) set "TEST_ADAPTER_PATH=%TEST_ADAPTER_BASE%\build\net462" if not exist "%TEST_ADAPTER_PATH%" ( echo MSTest adapter net462 dir not found: %TEST_ADAPTER_PATH% exit /b 1 ) set NAVISWORKS_PATH=C:\Program Files\Autodesk\Navisworks Manage 2026 if not exist "%NAVISWORKS_PATH%\Autodesk.Navisworks.Api.dll" ( echo Navisworks API path not found: %NAVISWORKS_PATH% exit /b 1 ) set PATH=%NAVISWORKS_PATH%;%PATH% %MSBUILD_PATH% "NavisworksTransport.UnitTests.csproj" /p:Configuration=Release /p:Platform=x64 /verbosity:minimal if errorlevel 1 ( echo Unit test build failed! exit /b 1 ) REM --- 主实例就绪检查(HTTP 18777)--- curl -s --max-time 3 http://127.0.0.1:18777/api/test/ping > "%TEMP%\nw_ping.json" 2>nul if errorlevel 1 goto notready findstr /C:"true" "%TEMP%\nw_ping.json" >nul if errorlevel 1 goto notready echo Main instance ready. Running integration tests (filter: %FILTER%)... goto runtests :notready echo. echo [ERROR] Main Navisworks test service not reachable at 127.0.0.1:18777. echo Start it first via start-navisworks.bat (or build-and-deploy.bat). exit /b 1 :runtests %VSTEST_PATH% "bin\x64\Release\NavisworksTransport.UnitTests.dll" /Platform:x64 /TestAdapterPath:%TEST_ADAPTER_PATH% /TestCaseFilter:"%FILTER%" if errorlevel 1 ( echo Integration tests failed! exit /b 1 ) echo Integration tests passed!