2024-06-26 18:07:53 发布
网友
我正在使用robotframework。我使用pabot并行运行测试套件。在
在运行时,我需要确保一个进程一次可以访问一个文件,而另一个进程应该等待该进程释放该文件。在
我知道这可以通过python中的多线程来实现。我是python的新手。我需要帮助来解决这个问题。在
robot没有内置的功能来处理文件锁定。对于文件锁定,也没有内置的跨平台机制。但是,有一些外部包可以执行文件锁定。例如,lockfile包看起来是一个很好的候选者。在
我建议在python中创建一个自定义关键字,在获取锁之后进行读取。如果您使用的是lockfile包,它可能看起来像这样:
# lock_keywords.py from lockfile import LockFile def read_file_with_locking(filename): lock = LockFile(filename) with lock: with open(filename, "r") as f: data = f.read() return data
然后在这样的测试中使用它:
我只在Mac上测试了这一点,方法是打开一个交互式pythonshell并使用lockfile库获取文件的锁,然后在另一个窗口中运行测试。测试暂停,直到我在交互会话中手动释放锁,此时它能够获取锁并读取文件。在
robot没有内置的功能来处理文件锁定。对于文件锁定,也没有内置的跨平台机制。但是,有一些外部包可以执行文件锁定。例如,lockfile包看起来是一个很好的候选者。在
我建议在python中创建一个自定义关键字,在获取锁之后进行读取。如果您使用的是lockfile包,它可能看起来像这样:
然后在这样的测试中使用它:
^{pr2}$我只在Mac上测试了这一点,方法是打开一个交互式pythonshell并使用lockfile库获取文件的锁,然后在另一个窗口中运行测试。测试暂停,直到我在交互会话中手动释放锁,此时它能够获取锁并读取文件。在
相关问题 更多 >
编程相关推荐