- 无参数 = 全量集成测试(TestCategory=NavisworksIntegration) - 带参数 = 子集,如 FullyQualifiedName~RealObjectAnimation - 自动:编译测试项目、查找 MSBuild/VSTEST/MSTest adapter、追加 Navisworks API PATH - 主实例就绪检查(HTTP 18777 ping),未就绪明确报错 - AGENTS.md 记录用法与 bat 编码约束(CRLF + GBK) 验证:子集 3/3、全量 25/25 通过
90 lines
3.2 KiB
Batchfile
90 lines
3.2 KiB
Batchfile
@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!
|