我正在使用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 gc.collect()是一个停止世界(STW)垃圾收集器吗?
如果是 STW 垃圾收集器,何时何地停止世界?
我知道 python 使用确定性引用计数,这不需要停止世界。然而,在处理循环时,python 是否需要停止世界?
我试图在 python 中应用深度学习算法(CNN),但在分离训练-测试数据并将时间序列转换为图像步骤后,我的Colab Notebook崩溃并再次自行重新启动。
它给出了类似“您的会话在使用所有 RAM 后崩溃”的错误,当我检查时app.log,我看到了有关tcmalloc: large alloc的信息。我没有找到任何东西来修复这个崩溃。
您知道如何防止此警告并解决此情况吗?
python memory-management tcmalloc tensorflow google-colaboratory