MSBuild이있는 .NET 프로젝트를 빌드하고 nunit-console.exe
을 사용하여 단위 테스트를 실행하려면 automate git bisect
(지침은 official Linux Kernel Git documenation for git bisect
에서 사용 가능)을 원합니다. 그러나 이러한 도구는 Windows 개발 환경에서 사용하기 위해 만들어진, 그리고 내가 같이 요약 msysgit의 배쉬 환경에서 작동하도록하는 방법으로 여러 가지 문제가있어 다음과msysgit의 MSBuild/NUnit/.NET/Windows 배치 명령에 대해 자동 양분을 자동화 하시겠습니까?
-
배쉬는 찾을 수가 없습니다
MSBuild.exe
또는nunit-console.exe
(경로 문제)MSBuild.exe
및nunit-console.exe
모두 Windows 스타일 명령 행 옵션 플래그를 사용합니다. 즉, 슬래시로 시작합니다.MSBuild.exe /M
. Bash에서는 슬래시가 Unix/Linux/* nix 시스템이 디렉토리 경로를 나타내는 데 사용하기 때문에 슬래시가 오류를 발생시킵니다.
이은 내가 사용했던 git bisect
명령입니다
$ git bisect start <bad commit> <good commit>
$ git bisect run auto-build-run-tests.sh
이들은 auto-build-run-tests.sh
의 내용은 다음과 같습니다
#!/bin/sh
# http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_02.html
# http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
# Build solution.
echo "Building..."
MSBuild.exe \
/consoleloggerparameters:ErrorsOnly \
/maxcpucount \
/nologo \
/property:Configuration=Debug \
/verbosity:quiet \
"Epic-Project-of-Supreme-Awesome.sln"
# Check exit status.
# (status != 0) ?
status=$?
if [ $status -ne 0 ]
then
echo "Build failure, status $status."
exit $status
fi
echo "Build success."
# Run unit tests
nunit-console.exe \
/noresult \
/stoponerror \
"bin/Debug/ArtificialIntelligence.Tests.dll" \
"bin/Debug/TravelingSalesManSolver.Tests.dll"
status=$?
if [ $status -ne 0 ]
then
echo "Test failure, status $status."
exit $status
fi
echo "Tests passed."
그냥 미래의 독자를 위해, 많은 MS 도구가 인식 * nix-like 쉘 및 accept - 대신/for 인수. msbuild가 실행된다는 것을 알고 있습니다 (예 :'-verbosity : quiet'); nunit에 대해 확실하지 않습니다. – danwyand