【问题标题】:Format for cross language common test data跨语言通用测试数据格式
【发布时间】:2011-09-02 05:53:09
【问题描述】:

我目前正在研究 C++ 和 Java 字体库的 C++ 端。

我们希望自动从多种字体生成测试数据,我们正在使用 Google Test 和 JUnit 进行测试。

我将编写一个脚本来生成这种通用格式的数据,然后在测试中对其进行解析。问题是对于 C++,我还想使用 Google Test 的值参数化测试,这意味着数据也包含在 C++ 中。

所以,我正在考虑以某种通用格式输出数据并从中生成 C++ 文件。

通常,我们会考虑 XML 或 JSON,但 Protocol Buffers 似乎很容易满足生成代码的要求,这使它们变得有趣。 我从未使用过它们并浏览过文档,它们似乎真的很擅长定义消息,而不是存储实际值(所以我可以定义一个 Person 消息,但我真正想做的是存储一堆 Person 常量) .

我们应该使用什么格式?

谢谢!

【问题讨论】:

    标签: xml json protocol-buffers googletest


    【解决方案1】:

    看起来 Protocol Buffers 非常适合您的用例。它在 C++ 和 Java 环境中快速且易于使用。它也非常稳定、有据可查并在 Google 之外广泛使用。

    对于在二进制流中存储多个对象,有众所周知的常规方法。例如,请参阅这个 SO 答案:Storing multiple messages in one protocol buffer binary file

    请记住,即使 Protobuf 是二进制格式,您仍然可以将测试用例转换为人类可读的格式,例如 JSON 或 XML。以下是一些相关链接:

    【讨论】:

    • 感谢您的回答!出于其他考虑,我们最终使用了 XML,但很高兴知道可以以这种方式使用 protobufs :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 2018-12-05
    • 2017-03-31
    • 1970-01-01
    • 2014-04-25
    • 2022-01-27
    相关资源
    最近更新 更多