这是一个场景,我希望你能帮助我。
我在/home/k/PR-TEST/Pr/test
kahmed@qatools:~/PR-TEST/Pr-test$ ls
_apache.py archive clienttest decorators.py fakeTecoreClient.py fixtures.pyc psqlharness.py servertest testhelp.pyc testutils.pyc
apache_server.py cache commontest decorators.pyc fixtures.py mysqlharness.py runtests.sh testhelp.py testutils.py
并让我实际运行的程序包针对@ /home/k/PR/Pr
命名(目录名为)pref
kahmed@qatools:~/PR/Pr$ pwd
/home/kahmed/PR/Pr
kahmed@qatools:~/PR/Pr$ ls
bin conf images init.d iped logrotate.d NEWS pref rpa sbin scripts src test VERSION
现在,我cd to ~/PR-TEST/Pr-test
,然后运行:
nosetests -s --with-coverage --cover-package /home/k/PR/Pr/pref `find . -name "*test.py"`
但我得到的错误是它找不到pref
中的包知道如何解决这个问题吗?
我必须确保python环境知道包pr
答案 0 :(得分:3)
如果在启动程序之前无法(或不想)修改PYTHONPATH,则可以在运行时修改sys.path以实现类似的功能。
但在这种情况下,您需要将调用包装到nosetests
脚本。另外,请检查您的程序包是否Pr
vs pr
,并且不会出现区分大小写的问题。
答案 1 :(得分:1)
您应该将包的路径添加到PYTHONPATH环境变量
答案 2 :(得分:0)
您应该将您的应用程序包放在“foo / app”目录中,并将测试放在另一个名为“foo / tests”的子目录中。然后从foo
目录运行测试,以便他们可以直接导入app
。