我想知道如何在我编写的minishell项目中自动化QA测试。
我需要测试以下命令:
Sleep 20
sleep 20 &
jobs
我需要它来显示作业何时完成(它们自己输出,所以我需要等待才能以某种方式记录)。
目前我已经尝试在make中写这个:
test01:
mshell < inputA.txt >> output.txt
test02:
mshell < inputB.txt >> output.txt
test00: test01 test02
和input.txt
内部我只是输入sleep 20
和exit"
这样的命令。
它适用于ls
等命令,但不适用于sleep 20
或sleep 20 &
和jobs
。 [见编辑]
这不是我的任务所必需的,但我真的想学习如何做到这一点。
编辑:
所以手动输入并使用script
命令将其全部记录在我得到的打字稿文件中:
[csc60mshell]> sleep 20 &
[csc60mshell]> sleep 10 &
[csc60mshell]> sleep 5 &
[csc60mshell]> jobs
Current Jobs:
Num Status Entry
[0] Running sleep 20
[1] Running sleep 10
[2] Running sleep 5
Child returned status: 0
[csc60mshell]>
[2] Finished. sleep 5
[1] Finished. sleep 10
[0] Finished. sleep 20
[csc60mshell]> exit
完成后台进程完成时自动输出完成的作业(如默认shell)。 sleep
命令和jobs
是我输入的内容。
但是,当我通过make test00
或make test01
开始使用制作时,我就出去了
[csc60mshell]> Child returned status: 0
ls- al
之类的命令时,一百万次,在这种情况下它可以正常工作。这只是sleep [number]
sleep [number] &
和jobs
的问题。我希望它与手动输入时相同。