我想测试一个使用thread_local变量的函数,即threading.local().setattr()
和threading.local().getattr()
当我运行我的单个测试用例时,它通过了,因为它只是使用线程进行测试,但是当我在项目中运行pytest时,它运行项目中的所有测试,看起来其他测试用例正在重用同一个线程,我的thread_local变量被覆盖了。
有没有一种简单的方法可以让我的测试用例独立于其他测试,或者在一个单独的线程中运行,或者在这个测试运行的时候锁定线程(不太好的解决方案,在这种情况下,我宁愿删除这个测试用例)
1条答案
按热度按时间polhcujo1#
最简单的方法可以是创建新的进程来测试线程(或其他)隔离的东西。
就像这样:
字符串
不要将线程和创建进程混合在一起。当启动(分叉)一个新进程时,应该只有一个线程(主线程)。