小编amo*_*ej1的帖子

如何使用@ pytest.mark与基类?

我正在使用py.test 2.2.4,我的测试用例组织如下:

import pytest 

class BaseTests():
    def test_base_test(self):
        pass

@pytest.mark.linuxonly
class TestLinuxOnlyLocal(BaseTests):
    pass

@pytest.mark.windowsonly
class TestWindowsOnly(BaseTests):
    pass

class TestEverywhere(BaseTests):
    pass
Run Code Online (Sandbox Code Playgroud)

这种设置的问题是第一类的装饰器泄漏到第二类.当我创建conftest.py时如下:

import pytest
import sys 

def pytest_runtest_setup(item):
    print "\n %s keywords: %s" % (item.getmodpath(), item.keywords)
    skip_message = None
    if 'windowsonly' in item.keywords and not sys.platform.startswith('win'):
        skip_message =  "Skipped: Windows only test"

    if 'linuxonly' in item.keywords and not sys.platform.startswith('linux'):
        skip_message = "Skipped: Linux only test"

    if skip_message is not None:
        print skip_message
        pytest.skip(skip_message)
Run Code Online (Sandbox Code Playgroud)

当我执行此设置时,输出显示标记似乎堆叠起来:

$ py.test  --capture=no
========================================== test session starts …
Run Code Online (Sandbox Code Playgroud)

python pytest

11
推荐指数
2
解决办法
2643
查看次数

当 gc 处理引用循环时,python 如何停止世界?

python gc.collect()是一个停止世界(STW)垃圾收集器吗?

如果是 STW 垃圾收集器,何时何地停止世界?

我知道 python 使用确定性引用计数,这不需要停止世界。然而,在处理循环时,python 是否需要停止世界?

python cpython

5
推荐指数
1
解决办法
1058
查看次数

tcmalloc:Google Colab 中的大型分配 python

我试图在 python 中应用深度学习算法(CNN),但在分离训练-测试数据并将时间序列转换为图像步骤后,我的Colab Notebook崩溃并再次自行重新启动。

它给出了类似“您的会话在使用所有 RAM 后崩溃”的错误,当我检查时app.log,我看到了有关tcmalloc: large alloc的信息。我没有找到任何东西来修复这个崩溃。

您知道如何防止此警告并解决此情况吗?

python memory-management tcmalloc tensorflow google-colaboratory

5
推荐指数
1
解决办法
2722
查看次数