草庐IT

test-environments

全部标签

python - 回滚事务不适用于 py.test 和 Flask

我正在使用py.test来测试我的Flask应用程序,但我收到了IntegrityError,因为我在两个不同的测试中创建了相同的模型。我正在使用postgreSQL9.3.5和Flask-SQLAlchemy1.0。编辑我已经用JeremyAllen的回答更新了我的sessoinfixture,它修复了很多错误。但是,当我使用用户fixture时,似乎仍然会出现IntegrityErrors错误EIntegrityError:(IntegrityError)duplicatekeyvalueviolatesuniqueconstraint"ix_users_email"EDETAIL

Python 在 64 位 Vista 上获得 os.environ ["ProgramFiles"] 的错误值

Vista64机器上的Python2.4.3。环境中有以下2个变量:ProgramFiles=C:\ProgramFilesProgramFiles(x86)=C:\ProgramFiles(x86)但是当我运行以下命令时importosprintos.environ["ProgramFiles"]printos.environ["ProgramFiles(x86)"]我得到:C:\ProgramFiles(x86)C:\ProgramFiles(x86)知道如何获得“ProgramFiles”的正确值吗? 最佳答案 来自Wikip

Python:复杂的列表理解,其中一个变量依赖于另一个变量(x for x in t[1] for t in tests)

我想做这样的事情:all=[xforxint[1]fortintests]测试看起来像:[("foo",[a,b,c]),("bar",[d,e,f])]所以我想得到结果all=[a,b,c,d,e,f]我的代码不工作,Python说:UnboundLocalError:localvariable't'referencedbeforeassignment有什么简单的方法可以做到这一点吗? 最佳答案 它应该反过来工作:all=[xfortintestsforxint[1]] 关于Pytho

python - 从 emacs 运行 py.test

如果正在编辑的文件的名称以test_开头,我希望C-cC-c运行py.test并在另一个缓冲区中显示输出,否则通常运行py-execute-buffer。我该怎么做?我在python模式下使用emacs23.1.1,可以从命令行访问py.test。 最佳答案 这还没有经过特别好的测试;这只是一个粗略的想法。(defunpy-do-it()(interactive)(if(string-match(rxbos"test_")(file-name-nondirectory(buffer-file-name)))(compile"py.t

python - 没有这样的元素 : Unable to locate element using chromedriver and Selenium in production environment

我有一个seleniumchromedriver问题,我无法弄清楚是什么原因造成的。几周前一切正常,突然这个错误开始出现。问题来自以下功能。deflogin_(browser):try:browser.get("some_url")#usercredentialsuser=browser.find_element_by_xpath('//*[@id="username"]')user.send_keys(config('user'))password=browser.find_element_by_xpath('//*[@id="password"]')password.send_ke

python - 为什么这可以解决 matplotlib 的 'no $DISPLAY environment' 问题?

在我的台式电脑上运行使用matplotlib库的代码时,使用以下行没有问题:importmatplotlib.pyplotasplt在代码的最下方,这是我实际使用绘图函数的地方。如果我在服务器中运行代码,但它只有在我导入matplotlib并强制它使用Agg时才会起作用后端。即,我必须将以下行添加到代码的开头:importmatplotlib#ForcematplotlibtonotuseanyXwindowsbackend.matplotlib.use('Agg')(参见thisanswer对此进行了解释)。否则代码将崩溃并显示TclError:nodisplaynameandno$

python - 如何在 Conda environment.yml 中指定版本范围

是否可以在environment.yml文件中为Conda包指定版本范围?officialdocumentation提到了一些依赖星号(*)的示例,我想知道这是否是唯一的功能,或者Conda是否支持其他更复杂的版本范围,例如supportedbynpm.例如,是否可以安装任何高于或等于1.2.3的补丁版本(例如,1.2.10可以,但1.3.0不是)? 最佳答案 我认为/假设指定版本的语法是记录在Packagematchspecifications中的语法.所以你会写-numpy>=1.2.3,(numpy后有空格,逗号后没有空格-未

python - 默认跳过测试,除非 py.test 中存在命令行参数

我有一个持续2天的长期测试,我不想将其包含在常规测试运行中。我也不想键入命令行参数,这会在每次常规测试运行时取消选择它和其他测试。当我确实需要时,我更愿意选择默认取消选择的测试。我尝试将测试从test_longrun重命名为longrun并使用命令py.testmytests.py::longrun但这不起作用。 最佳答案 除了上面的pytest_configure解决方案,我还找到了pytest.mark.skipif。你需要将pytest_addoption()放入conftest.pydefpytest_addoption(p

Python 文档测试 : skip a test conditionally

我知道如何使用#doctest:+SKIP跳过doctest,但我不知道如何根据运行时条件有时跳过测试.例如:>>>ifos.path.isfile("foo"):...open("foo").readlines()...else:...pass#doctest:+SKIP['hello','world']这就是我想做的事情。我也会接受运行测试的解决方案,但如果不满足条件(即无条件运行测试但修改预期结果),则将预期结果更改为带有回溯的异常。 最佳答案 如果您不想对输出进行测试,您可以返回一个特殊值。让我们调用_skip这个特殊值:如

python - 如果 py.test 的另一个测试失败,我该如何跳过测试?

假设我有这些测试函数:deftest_function_one():assert#etc...deftest_function_two():#shouldonlyruniftest_function_onepassesassert#etc.如何确保test_function_two仅在test_function_one通过时运行(我希望这是可能的)?编辑:我需要这个,因为测试二正在使用测试一验证的属性。 最佳答案 您可以使用名为pytest-dependency的pytest插件.代码可以是这样的:importpytest@pyte