Astropy测试工具

本节主要是为那些想了解或添加Astropy测试机制的开发人员提供参考。看到了吗 测试指南 有关运行或编写测试的概述。

astropy.tests.helper 模块

为了简化对Astropy有效的测试的开发 astropy.tests.helper 模块提供一些实用函数,使使用Astropy约定或类的测试更容易使用,例如,测试 Quantity 物体。

这里的功能并不详尽,因为许多有用的工具都在标准库中, pytestnumpy.testing . 这个模块主要包含特定于astropy核心包或遵循astropy包模板的包的功能。

参考/API

astropy.tests.helper模块

功能

assert_follows_unicode_guidelines(x[, roundtrip])

测试对象是否遵循我们的Unicode策略。

assert_quantity_allclose(actual, desired[, ...])

如果两个对象不符合所需的公差,则引发断言。

check_pickling_recovery(original, protocol)

试着去腌制一个物体。

pickle_protocol \(请求)

Fixture运行协议0和1以及-1(最高级)的所有测试。

generic_recursive_equality_test(a, b, ...)

检查a和b的属性是否相等。

Astropy测试运行程序

使用执行测试时 astropy.test 对pytest的调用由 astropy.tests.runner.TestRunner 班级。

这个 TestRunner 类用于生成 astropy.test 函数时,test函数为pytest生成一组命令行参数。pytest的参数在 run_tests 方法的参数 run_tests 它们各自的逻辑定义在 TestRunner 装饰着 keyword 装饰工。有关此示例,请参见 TestRunnerBase . 这种设计使得包可以很容易地向测试运行器添加或删除关键字参数,或者通过从 TestRunnerBase .

参考/API

class astropy.tests.runner.keyword(default_value=None, priority=0)[源代码]

将方法标记为的关键字参数的修饰符 TestRunner .

参数
default_valueobject对象

关键字参数的默认值。(默认值: None

优先int利息

关键字参数方法按优先级降序执行。

class astropy.tests.runner.TestRunnerBase(*args, **kwargs)[源代码]

TestRunner的基类。

可以通过创建此类的子类并定义“关键字”方法来构造测试运行器。这些方法具有 keyword decorator,这些方法用于构造 run_tests 方法作为一种允许自定义单个关键字参数(和关联逻辑)的方法,而不必重新实现整体 run_tests 方法。

实例

一个简单的关键字方法:

class MyRunner(TestRunnerBase):

    @keyword('default_value'):
    def spam(self, spam, kwargs):
        """
        spam : `str`
            The parameter description for the run_tests docstring.
        """
        # Return value must be a list with a CLI parameter for pytest.
        return ['--spam={}'.format(spam)]
class astropy.tests.runner.TestRunner(*args, **kwargs)[源代码]

Astropy 测试的测试运行