作为使用MSBuild运行xUnit.net测试的一些构建自动化的一部分,我遇到了需要循环遍历一批项目的情况.
在循环内部,我需要检测迭代是否失败,但我想继续执行,无论如何.然后在批处理后,我需要知道是否发生了一个或多个错误,以便向TeamBuild报告结果.
IOW,伪代码:
Task Name=RunTests
CreateItems
ForEach item CallTarget Target=RunTest ContinueOnError=true
CombineNUnitResults
Report success/failure
Task Name=RunTest
XUnit item
Run Code Online (Sandbox Code Playgroud)
我希望这可以在没有自定义任务的情况下实现(或者像Jonne那样攻击xunit.net MSBuild任务).(但愿意使用MSBuild社区或Sdc任务)
和@BradWilson:我不可能干净利落地做,我会在NUnit任务中找到Jonne的变化,也可以让它进入xunit任务
问候所有.我正在设置一个cron作业来执行一个bash脚本,我担心下一个可能会在前一个脚本结束之前启动.一个小小的谷歌搜索显示,一种流行的解决方法是flock命令,使用方式如下:
flock -n lockfile myscript.sh
if [ $? -eq 1 ]; then
echo "Previous script is still running! Can't execute!"
fi
Run Code Online (Sandbox Code Playgroud)
这非常有效.但是,如果我想检查退出代码,我该怎么办myscript.sh?无论退出代码返回将被覆盖flock的,所以我不知道,如果它成功,或不执行的方式.
我正在开发一个shell脚本,并希望处理我可能遇到的各种退出代码.为了尝试,我使用这个脚本:
#!/bin/sh
echo "Starting"
trap "echo \"first one\"; echo \"second one\"; " 1
exit 1;
Run Code Online (Sandbox Code Playgroud)
我想我错过了一些东西,但似乎我无法陷入自己的"退出1".如果我试图陷阱0一切正常:
#!/bin/sh
echo "Starting"
trap "echo \"first one\"; echo \"second one\"; " 0
exit
Run Code Online (Sandbox Code Playgroud)
关于捕获HUP(1)退出代码有什么我应该知道的吗?
我有一个程序(抓图),使用网络摄像头拍摄一个人的脸,我也有一个shell脚本包装器,其工作方式如下:
在命令行上,用户为脚本提供要运行的程序的名称及其命令行参数.然后脚本执行给定的命令并检查退出代码.如果出现错误,则运行程序抓取以捕获用户的惊讶面孔.
一切都很好.但问题是必须始终使用包装器脚本.有没有办法在shell中输入命令时自动运行此脚本?或者是否有其他方法可以在任何程序运行后自动运行给定的程序?
优选地,解决方案应该在bash中工作,但是任何其他shell也可以.我意识到这可以通过简单地在shell的源代码中进行一些调整来实现,但这是最后一种措施.
可能更棘手的事情是扩展它以使用在shell外部启动的程序(例如从桌面环境),但这可能太难了.
编辑: Awsome!由于bash很容易,其他贝壳呢?
我试图退出python脚本没有出现恼人的错误消息:
Traceback (most recent call last):
File "<pyshell#27>", line 3, in <module>
sys.exit()
SystemExit
Run Code Online (Sandbox Code Playgroud)
我尝试过很多东西,但都没有.这是一个例子:
while True:
print "hi", #this just tests to see if I have exited.
try:
sys.exit()
except SystemExit:
print "Exited"
Run Code Online (Sandbox Code Playgroud)
注意:解决方案不一定要接近这个代码,这只是我尝试过的一个例子
按照问题.我知道有一个"0但是真的"在布尔上下文中是真的但是否则为false,但是在布尔上下文中可以返回false但是具有非零值(显而易见的地方是返回状态,其中0表示成功,任何事情别的是错误).
我正在编写一个bash脚本,并希望在其中进行强大的错误检查.
mv使其失败的退出状态代码很容易模拟故障.您所要做的就是移动一个不存在的文件,但它失败了.
但是,mkdir我希望模拟它失败.mkdir可能由于多种原因,磁盘问题或缺少权限而失败,但不确定如何模拟故障.
我正在尝试使用ProcessBuilder执行带有命令行参数的shell脚本,此shell脚本调用另外两个使用此参数的shell脚本.第一个shell脚本运行正常,但是当第二个脚本启动时,它返回退出代码1.
Java程序的ProcessBuilder片段:
//scenario - A string that holds a numerical value like 1 or 2 etc
String[] command2 = {"/bin/bash", "<path to shell script>/runTemporaryTestSuite.sh", scenario};
ProcessBuilder pb2 = new ProcessBuilder(command2);
Process p2 = pb2.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p2.getInputStream()));
String line;
//print - is an object ref of response.getWriter() //
print.println("Output of running "+Arrays.toString(command2)+" is: ");
while ((line = br.readLine()) != null) {
print.println(line);
}
try {
int exitValue = p2.waitFor();
print.println("<br><br>Exit Value of p2 is " + exitValue); …Run Code Online (Sandbox Code Playgroud) 我一直在尝试创建自己的主要检查功能,虽然奇怪的是当我调用isPrime(7)它返回1时,这很好,但是当我调用isPrime(9)时它会给我以下错误:
'Mathematics.exe':已加载'C:\ Documents and Settings\mbryant\My Documents\Visual Studio 2010\Projects\Mathematics\Debug\Mathematics.exe',已加载符号.'Mathematics.exe':加载'C:\ WINDOWS\system32 \ntdll.dll',找不到或打开PDB文件'Mathematics.exe':加载'C:\ WINDOWS\system32\kernel32.dll',找不到或者打开PDB文件'Mathematics.exe':加载'C:\ WINDOWS\system32\msvcp100d.dll',加载符号.'Mathematics.exe':已加载'C:\ WINDOWS\system32\msvcr100d.dll',已加载符号.线程'Win32 Thread'(0x6ec)已退出,代码为-1073741510(0xc000013a).
这是代码:
#include <iostream>
using namespace std;
bool isPrime(int x){
int b = 0;
int i = 2;
if(x == 2){
return 1;
}
if (x > 2){
while(i < x){
if ( (x % i) != 0){
b = b + 1;
i = i + 1;
}
}
if (b > 0){
return 1;
} if (b == 0){
return 0;
}
} …Run Code Online (Sandbox Code Playgroud) 我在通过黄瓜运行Testcafe时遇到问题。无论出于何种原因,当我通过黄瓜运行testCafe时,即使测试失败,该过程也始终会以退出代码0退出。
如果我通过黄瓜来操纵木偶戏,我不会遇到这个问题。我认为这种行为是由于我在我的钩子文件中设置了东西的方式造成的,在该文件中我没有正确解释测试咖啡馆出口代码。
在我的hooks文件中,我将在我的Before钩子中创建一个testCafe运行器,然后在我的after钩子中将其关闭。
我想知道我可以使用什么命令来获取TestCafe退出代码,而我却找不到任何信息。
例如,退出代码是从close函数返回的还是什么?
exit-code ×10
bash ×3
shell ×3
cron ×1
e2e-testing ×1
file-locking ×1
flock ×1
java ×1
msbuild ×1
perl ×1
python ×1
scripting ×1
shell-trap ×1
signals ×1
team-build ×1
testcafe ×1
testing ×1
unit-testing ×1
windows ×1
xunit.net ×1