python自动测试运行程序
pyguard的Python项目详细描述
Pyguard
受guard项目启发的python自动测试运行程序。
在修改文件时运行所有测试的简单示例如下:
fromfilewatchimportfile_updated_subject,Watcherfrompyguardimportguardian,GuardianObserver,RegexRule,RuleManagermanager=RuleManager(cmd='py.test pyguard')manager.register_rules(RegexRule(regex=r'.*/pyguard/.*'),)guardian.register_manager(manager)# Set up our file observerfile_updated_subject.register_observer(GuardianObserver())# Get our watcher goingwatcher=Watcher()watcher.run()
只要注册的规则与提供的文件路径匹配,您创建的任何RuleManager都将执行给定的命令。
为了使事情更精细,我们可以注册一组不同的规则。即
...manager=RuleManager(cmd='py.test pyguard/tests/test_{test_name}.py')manager.register_rules(RegexRule(regex=r'.*/rules.py',cmd_augmentation={'test_name':'rules'}),RegexRule(regex=r'.*/core.py',cmd_augmentation={'test_name':'guardian'}),)guardian.register_manager(manager)...
为了强制执行特定的命名约定,我们可以在regex本身中使用命名组来进一步执行。如果我们说了一个^ {tt2} $,并且我们知道在{TT3}$中存在这些视图的测试,那么我们可以简单地使用:
...manager=RuleManager(cmd='py.test pyguard/tests/test_{test_name}.py')manager.register_rules(RegexRule(regex=r'.*/(?P<test_name>views).py'),)guardian.register_manager(manager)...