python 的单元测试库(尤其是 3.x,我不太关心 2.x)是否有装饰器只能由 root 用户访问?
我有这个测试功能。
def test_blabla_as_root():
self.assertEqual(blabla(), 1)
blabla 函数只能由 root 执行。我只想要 root 用户装饰器,所以普通用户将跳过此测试:
@support.root_only
def test_blabla_as_root():
self.assertEqual(blabla(), 1)
这样的装饰器存在吗?不过,我们有 @support.cpython_only 装饰器。
最佳答案
如果您使用的是单元测试,则可以使用 unittest.skipIf
和 unittest.skipUnless
跳过测试或整个测试用例。
在这里,你可以做:
import os
@unittest.skipUnless(os.getuid() == 0) # Root has an uid of 0
def test_bla_as_root(self):
...
可以简化为(可读性较差):
@unittest.skipIf(os.getuid())
关于python - 仅对 python 中的 root 用户进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18098110/