鼻测试在不同的目录中给出不同的结果

2024-10-03 00:27:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个项目,我想在后台程序的上下文中运行我的代码。我在这里使用一个守护进程类:

http://www.gavinj.net/2012/06/building-python-daemon-process.html

我想运行一个简单的测试来确认我的守护进程是否正确地启动和停止以及其他一些事情。我的测试目录中有这个测试,我的目录布局如下:

mydaemon
    mydaemon
        /__init__.py
        /daemon.py
        /mydaemonrunner.py
    tests
        /test_mydaemonrunner.py          

当我从test目录中运行nosetests时,我的测试通过了,没有任何问题。但是,当我从根mydaemon目录运行nosetests时,我得到一个被调用的进程错误。这是我要通过的测试。。。你知道吗

class test_mydaemonrunner(unittest.TestCase):
    def setUp(self):
        output = subprocess.check_output(["sudo","python","../mydaemon/mydaemonrunner.py","start",stderr=subprocess.STDOUT)
        m = re.match("started with pid (\d+)", output)
        if m:
            self.process_pid = m(1)
        else:
            print "Test Setup was not successful"

对于记录,引发的错误是CalledProcessError。你知道吗

所以,我的问题是:

在我的项目的根目录下运行时,什么会导致nosetests失败,而在tests目录下运行时会通过呢?是否有一个首选的目录结构可以将这些问题最小化?你知道吗


Tags: 项目pytestself目录output进程错误