下面是该
check_err()
{
# parameter 1 is last exit code
# parameter 2 is error message that should be shown if error code is not 0
if [ "${1}" -ne "0" ]; then
cat '~temp.log'
echo ${2}
rm -f '~temp.log' > /dev/null
exit ${1}
fi;
rm -f '~temp.log' > /dev/null
}
for i in `find . -print | grep 'bin/Debug/[^/]*\.Tests\.dll$'`; do
echo "Running tests from ${i} with NUnit...";
cmd.exe /c "Lib\NUnit\nunit-console.exe ${i} /framework:net-4.0" > '~temp.log'
check_err $? "Some tests failed."
done
我工作的脚本,但有一个微妙的问题。 NUnit有时会返回负面的错误代码,这对Windows而言是正确的,但对于* nix是非法的。我不知道Cygwin如何使用负退出码,但MinGW32将它们视为0,即"$?" == "0"
。
好消息,负面的错误代码对于NUnit来说是比较少见的,并且指示运行NUnit本身时出现问题(有关详细信息,请参阅this question)。我没有找到这个问题的解决方法,所以我只在构建服务器上检查了负面的错误代码。本地从bash控制台,我只处理积极的。
呵呵不知道这个。这可能会完成根本目标。谢谢。 – JoshReedSchramm 2010-09-08 13:31:47