首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改QtTest输出的编码?

如何更改QtTest输出的编码?
EN

Stack Overflow用户
提问于 2019-07-23 20:18:28
回答 1查看 55关注 0票数 0

当我在Visual Studio 2015测试资源管理器中执行测试时,我得到unicode编码的结果

代码语言:javascript
复制
    void TestProduct::test_case1()
    {       
        QString string = "Кириллица";
        QString result = "кириллица";

        qDebug() << string;
        qDebug() << result;

        QCOMPARE(string, result);
    }

输出为

代码语言:javascript
复制
PASS    : 'initTestCase()' 
FAIL    : 'test_case1()' Compared values are not the same
   Actual   ((string)): "\u041A\u0438\u0440\u0438\u043B\u043B\u0438\u0446\u0430"
   Expected (result)  : "\u043A\u0438\u0440\u0438\u043B\u043B\u0438\u0446\u0430"
          QDEBUG    : "Кириллица"
          QDEBUG    : "кириллица"
tst_testproduct.cpp(33)

有没有办法像qDebug那样以更易读的格式获得实际值和期望值的输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-24 00:31:06

找到了解决方案。

一旦QT Testlib打算输出QString值,它就会在内部调用toPrettyUnicode。为了修复它,我重写了toString函数:

代码语言:javascript
复制
char *toString(const QString &str)
{
    return qstrdup(str.toUtf8().constData());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57164057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档