我正在研究一个shell脚本,它应该以某种定义的顺序运行python测试。这是shell脚本:
files_array=()
for entry in tests/*.py
do
files_array+=($entry)
echo $files_array
done
cd tests/
./script -p create_01.yml
export FILE_PATH='../books/create_01.yml'
python3 -m unittest test test_create_01.py
./script -p update_02.yml
export FILE_PATH='../books/update_02.yml'
python3 -m unittest test test_update_02.py
./script -p delete_03.yml
export FILE_PATH='../books/delete_03.yml'
python3 -m unittest test test_delete_03.py
“tests
”文件夹包含3个测试文件:test_create_01.py
,test_update_02.py
和test_delete_03.py
。
我将三个文件名放在变量数组files_array
中。如何使用此数组调用一个块中的所有三个文件而不是3个?
我还想按照某种顺序给他们打电话:首先拨打test_create_01.py
,然后拨打test_update_02.py
,然后拨打最后test_delete_03.py
。
答案 0 :(得分:1)
您甚至不需要创建阵列。你可以这样做:
cd tests/
for entry in test_create_01.py test_update_02.py test_delete_03.py; do
echo "now processing $entry"
s="${entry#test_}"
s="${s%.py}"
./script -p "$s.yml"
export FILE_PATH="../books/$s.yml"
python3 -m unittest test "entry"
done