NavisworksTransport/run-integration-tests.bat
tian e0b01247ab chore: 新增 run-integration-tests.bat 集成测试脚本(支持过滤器参数)
- 无参数 = 全量集成测试(TestCategory=NavisworksIntegration)
- 带参数 = 子集,如 FullyQualifiedName~RealObjectAnimation
- 自动:编译测试项目、查找 MSBuild/VSTEST/MSTest adapter、追加 Navisworks API PATH
- 主实例就绪检查(HTTP 18777 ping),未就绪明确报错
- AGENTS.md 记录用法与 bat 编码约束(CRLF + GBK)

验证:子集 3/3、全量 25/25 通过
2026-08-05 23:57:36 +08:00

90 lines
3.2 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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 "<filter>" -> 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!