如何在通过Travis CI的文档字符串中编写示例?

时间:2016-02-23 12:34:32

标签: python documentation integration-testing

我是文档字符串中的示例的朋友,并且很好的示例(在我看来)包括一个声明,如果用户执行某些代码行,将会看到什么。有时输出是字典,而且所有知道本质上都是无序的。

"""This method prints a dictionary.

Examples
--------
>>> a = dict(x=1, y=2)
>>> a
{'y': 2, 'x': 1}
""""

我当然也可以{'x': 1, 'y': 2}。正因为如此,特拉维斯CI会抱怨“失败的doctest测试”,其中包含与以下类似的词:

Expected:
    {'y': 2, 'x': 1}
Got:
    {'x': 1, 'y': 2}

我无法告诉Travis CI字典是无序的。如何编写包含字典输出的示例的文档字符串,以便传递docstring测试?

2 个答案:

答案 0 :(得分:3)

听起来有点烦人。

除了提出针对特拉维斯CI的问题之外,我认为你不能做任何事情(因为这个 是特拉维斯的错误),并希望它能得到解决。

与此同时,您可以将Travis CI配置为不运行此特定测试,或者您可以根据特定输入调整顺序并祈祷结果至少部分确定您的特定安装。

对于它的价值,你并不孤单:

看起来各种项目都必须为此问题编写解决方法。

答案 1 :(得分:2)

我的问题主要是关于文档字典中的字典。我最喜欢的解决方法是

"""
>>> a = dict(x=1, y=2)
>>> sorted(a.items())
[('x', 1), ('y', 2)]
"""