小编Pat*_*eck的帖子

检测boost测试用例是否失败

我想记录一些关于 BOOST 断言失败的更多数据。不确定这是否可能以及如何。

BOOST_AUTO_TEST_CASE( TestCase1 )
{
    Data d;

    d.fillUp(...);

    d.operation1(...);
    BOOST_CHECK(d == ...);

    d.operation2(...);
    BOOST_CHECK(d == ...);

    ...

    if( /* anything above failed */)
    {
        log << d;
    }
}
Run Code Online (Sandbox Code Playgroud)

我对最后一个条件有问题。你能建议吗?我希望错误日志指示发生断言时 Data 对象中的条件。理想情况下,即使测试用例中发生了多个断言,我也希望它们被转储一次。

c++ boost unit-testing

6
推荐指数
1
解决办法
1099
查看次数

Django/postgres 事务隔离级别设置被忽略

我在设置事务隔离级别时遇到问题。我想要最严格的可序列化,而默认是读提交。

我在用:

Django==1.10.6
psycopg2==2.5.1
Run Code Online (Sandbox Code Playgroud)

在heroku上运行。

基于文档:https : //docs.djangoproject.com/en/1.10/ref/databases/#isolation-level

我有以下settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    'OPTIONS': {
        'isolation_level': psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE,
    }
}

if on_heroku:
    DATABASES['default'] = dj_database_url.config()
Run Code Online (Sandbox Code Playgroud)

这是视图代码:

@require_http_methods(["POST"])
@transaction.atomic
@login_required()
def api_test_add_one(request):
    cursor = connection.cursor()

    cursor.execute('SHOW default_transaction_isolation')

    logger.info("aa: " + str(cursor.fetchone()))

    return HttpResponse("{}", content_type="application/json")
Run Code Online (Sandbox Code Playgroud)

输出是:

aa: (u'read committed',)
Run Code Online (Sandbox Code Playgroud)

我在访问同一个端点时同时运行了不同的测试,在数据库中增加了一个整数,并确认事务没有被隔离。

django postgresql

3
推荐指数
1
解决办法
626
查看次数

标签 统计

boost ×1

c++ ×1

django ×1

postgresql ×1

unit-testing ×1