跳到内容

进程属性

进程属性可以在任何时候查询,并且应该反映进程的当前状态。

waiting.py

import time

time.sleep(0.1)
print("DONE!")

带代码

from icommandlib import ICommand, UnexpectedExit
from commandlib import python
import time

process = ICommand(python("waiting.py")).run()

运行

'running' 属性将报告状态当前是否正在运行。

assert process.running == True
time.sleep(0.2)
assert process.running == False
  • 代码运行完成时。

退出代码

exit_code 属性在进程运行时为 None,进程结束后包含退出代码。

assert process.exit_code is None
time.sleep(0.2)
assert process.exit_code == 0, process.exit_code
  • 代码运行完成时。

进程 ID

pid 属性在进程运行时包含进程的 pid,进程结束后为 None。

如果你在进程自行结束之后尝试获取 .pid,而没有明确等待它,它将引发 UnexpectedExit 异常。

assert process.pid is not None
time.sleep(0.2)

try:
    now_finished = process.pid
except UnexpectedExit:
    pass

assert process.pid is None, process.pid
  • 代码运行完成时。

可执行规范

process-properties.story storytests 自动生成的文档。