Tôi chỉ cần một cái gì đó rất đơn giản như "chạy lệnh này và thành công nếu có 'chuỗi này' một nơi nào đó trong đầu ra giao diện điều khiển, không nếu không". Có một công cụ như vậy không?Có khung kiểm thử đơn vị cho các tệp lô Windows không?
Trả lời
Không phải là tôi biết, nhưng bạn có thể dễ dàng viết một tập lệnh theo lô khác.
call TestBatchScript.cmd > console_output.txt
findstr /C:"this string" console_output.txt
sẽ đặt% errorlevel% thành 0 nếu chuỗi được tìm thấy và không khác nếu chuỗi bị thiếu. Sau đó, bạn có thể kiểm tra điều đó bằng IF ERRORLEVEL 1 goto :fail
và thực thi bất kỳ mã nào bạn muốn sau nhãn :fail
.
Nếu bạn muốn đánh giá nhỏ gọn một số chuỗi như vậy, bạn có thể sử dụng || Cú pháp:
call TestBatchScript.cmd > console_output.txt
findstr /C:"teststring1" console_output.txt || goto :fail
findstr /C:"teststring2" console_output.txt || goto :fail
findstr /C:"teststring3" console_output.txt || goto :fail
findstr /C:"teststring4" console_output.txt || goto :fail
goto :eof
:fail
echo You Suck!
goto :eof
Hoặc, bạn có thể đi xa hơn nữa và đọc danh sách các chuỗi từ một tập tin
call TestBatchScript.cmd > console_output.txt
set success=1
for /f "tokens=*" %%a in (teststrings.txt) do findstr /C:"%%a" console_output.txt || call :fail %%a
if %success% NEQ 1 echo You Suck!
goto :eof
:fail
echo Didn't find string "%*"
set success=0
goto :eof
tôi đã tạo ra một thư viện cho kiểm tra đơn vị cửa sổ hàng loạt. Nó hiện đang trong giai đoạn trứng nước, nhưng nó hoạt động và tôi sử dụng nó.
Nó được gọi là cmdUnit và nó có thể được tải về từ trang web của dự án trên bitbucket:
tôi sử dụng sau đây cho filter lệnh loại:
Đối với tập tin thực thi foo.cmd
, tạo ra sau tệp:
foo.in.txt
:
hello
foo.expected.txt
:
hello world
foo.test.cmd
:
@echo off
echo Testing foo.cmd ^< foo.in.txt ^> foo.out.txt
call foo.cmd <foo.in.txt> foo.out.txt || exit /b 1
:: fc compares the output and the expected output files:
call fc foo.out.txt foo.expected.txt || exit /b 1
exit /b 0
Sau đó chạy foo.test.cmd
Xem thêm http://stackoverflow.com/questions/940497/how-to-do-tdd- và-đơn vị-kiểm tra-in-powershell – TrueWill