2009-10-09 30 views
5

Tôi đã tạo một tệp cho một hệ thống theo kịch bản, với rất nhiều bài kiểm tra cần vượt qua. Mỗi bài kiểm tra là một cuộc gọi riêng cho ứng dụng tập lệnh:GNU thực hiện: đảo ngược quá trình thành công?

#---------------------------------------------------------------------------- 
# run test scripts in the module::test 
#---------------------------------------------------------------------------- 
scripted_tests: bin/kin modules/test/actor_equality.kin modules/test/actor_fibre.kin ... 
    bin/kin modules/test/actor_equality.kin 
    bin/kin modules/test/actor_fibre.kin 
    ... 

Điều này là tốt. Tôi cũng có một số xét nghiệm tương tự mà nên trả lại thất bại. Tôi biết rằng - sẽ bỏ qua tình trạng lợi nhuận, nhưng phải có một cái gì đó đơn giản để đảo ngược tình trạng trở lại để tôi có thể chạy

#---------------------------------------------------------------------------- 
# run test scripts in the module::test::errors 
#---------------------------------------------------------------------------- 
inverse_tests: bin/kin modules/test/error/bad_function.kin ... 
    not bin/kin modules/test/error/bad_function.kin 
    ... 

Trả lời

8

Sử dụng lệnh !.

echo This returns success 
! echo This returns failure 
+1

Cụ thể, "bin/kin" của nó thay vì "! Bin/kin" mà tôi đã thử và gặp lỗi –

+0

Rất hữu ích khi sử dụng grep để kiểm tra sự hiện diện của thông báo lỗi trong đầu ra nhật ký dựng. '! grep output.log -i "lỗi msg" – shuckc

1

Giả sử bạn muốn chắc chắn rằng trạng thái thoát của "bin/kin test5.kin" là 5. Sau đó chỉ cần viết này:

run-test5: 
    bin/kin test5.bin; test $$? = 5 

Để biết thêm chi tiết hóa các xét nghiệm thấy 'giúp đỡ test' và 'thử nghiệm con người'.

Lưu ý: Tôi có xu hướng tránh dấu chấm than vì thường không thể sao chép/dán chúng vào một vỏ tương tác (vì nó tìm kiếm lịch sử).