我构建了一个Django应用程序,并使用setuptools将其打包。现在,我想做以下事情:我想使用pythonsetup.pytest运行所有测试。但是当我发出这个命令时,我得到:/usr/lib/python2.7/distutils/dist.py:267:UserWarning:Unknowndistributionoption:'install_requires'warnings.warn(msg)usage:setup.py[global_opts]cmd1[cmd1_opts][cmd2[cmd2_opts]...]or:setup.py--help[cmd1cmd2..
我知道sys.exc_info文档说在处理回溯对象时要小心,但我仍然不确定某些情况下的安全性或不安全性。此外,文档说“警告:不要这样做!”,紧接着是“注意:实际上,没问题”,这让我更加困惑。在任何情况下,文档和“Whyisthereaneedtoexplicitlydeletethesys.exc_info()tracebackinPython?”(AlexMartelli的回答)似乎都暗示其唯一引用分配给它们的回溯值的局部变量会导致问题。这留给我几个问题:在这种情况下,“局部变量”到底是什么意思?我正在为术语而苦苦挣扎,但是:这是否意味着仅在函数中创建的变量,或者也由函数参数创建的变
我编写了一个包(http://github.com/anntzer/parsedcmd),它可以在Python2和Python3上运行。但是,我不得不为Python2和Python3编写单独的(py.test)单元测试(主要是因为我想测试Python3的额外功能,特别是仅关键字参数),所以我有一个test_py2.py和一个test_py3.py在test分包。现在,如果我跑,说py.test2mypkg,test_py2通过,但是test_py3失败并显示SyntaxError.同样,对于py.test3mypkg,test_py3通过但test_py2失败(虽然我可以让这个工作,这
我有一个看起来像这样的Django1.7迁移:#-*-coding:utf-8-*-from__future__importunicode_literalsfromdjango.dbimportmodels,migrationsdefunits_to_m2m(apps,schema_editor):Interval=apps.get_model("myapp","Interval")IntervalUnit=apps.get_model("myapp","IntervalUnit")forintervalinInterval.objects.all():IntervalUnit(int
我有一个测试套件,它作为一个更大的构建框架的一部分执行,是用Python编写的。一些测试需要参数,我想使用环境变量传递这些参数。显然nosetestsrunner有一个env参数,它可以满足我的要求,accordingtothedocumentation.然而,它似乎并没有像预期的那样工作?这里有一个最小的测试脚本来举例说明这个问题:#!/usr/bin/envpython#pipinstallnoseimportos,nose,unittestclassTest(unittest.TestCase):deftest_env(self):self.assertEquals(os.env
除了MacOSX自带的Python版本之外,我最近还从他们的网站下载了python。这是我开始在使用pip安装软件包时遇到问题。sudopipinstall-vvvpygoogle将输出如下:Thedirectory'/Users/robot/Library/Caches/pip/http'oritsparentdirectoryisnotownedbythecurrentuserandthecachehasbeendisabled.Pleasecheckthepermissionsandownerofthatdirectory.Ifexecutingpipwithsudo,youma
我有一个捕获所有异常的函数,我希望能够在该函数中将回溯作为字符串获取。到目前为止这还行不通:defhandle_errors(error_type,error_message,error_traceback):"""catcherrors"""importtracebackerror={}error['type']=error_type.__name__error['message']=str(error_message)error['file']=os.path.split(error_traceback.tb_frame.f_code.co_filename)[1]error['l
我正在使用unittest来测试我的Flask应用程序,并使用nose来实际运行测试。我的第一组测试是为了确保测试环境干净,并防止在Flask应用程序配置的数据库上运行测试。我确信我已经干净地设置了测试环境,但我希望在不运行所有测试的情况下对此有一些保证。importunittestclassMyTestCase(unittest.TestCase):defsetUp(self):#setsomestuffuppassdeftearDown(self):#dotheteardownpassclassTestEnvironmentTest(MyTestCase):deftest_envi
我有带有setup.py的Python包。它具有在install_requires中声明的常规依赖项和在tests_require中声明的开发依赖项,例如flake8.我认为pipinstall-e.或运行pythonsetup.pytest也会安装我的开发依赖项,它们将可用。然而,显然它们不是,我很难正确设置我的TravisCI构建。install:-"pipinstall-e."script:-"pythonsetup.pytest"-"flake8"如上配置的构建将失败,因为flake8将不会被发现为有效命令。我还尝试从pythonsetup.pytest命令内部调用flake8
我正在使用pythonpytest来运行我的单元测试。我的项目文件夹是:Main-包含数据文件:A.txtMain\Tests-我运行pytest的文件夹Main\Tests\A_test-包含测试文件的文件夹A_test文件夹中的测试使用文件A.txt(位于Main文件夹中)。我的问题是,当我运行py.test时,测试失败,因为它找不到A.txt。我发现是因为pytest在运行测试时使用了路径Main\Test,而不是将路径改为Main\Tests\A_test(我是在测试文件中打开A.txt时使用相对路径)我的问题:有没有办法让pytest将目录更改为它为每个测试执行的测试文件夹?