如何运行配置跳过或排除的测试?

问题描述 投票:0回答:1

我有一个测试套件,其中一些测试非常慢,所以我这样标记它们:

# tests_1.robot
TEST-1
    [Tags]  slow
    (...)

为了避免每次启动测试时的时间损失,通过使用机器人配置文件将此类标签从“正常”执行中排除:

# robot-arguments.cfg
(... other various settings ...)
--exclude slow

在命令行中运行

robot
时会跳过此测试(即不存在),这很好:

$ robot --argumentfile robot-arguments.cfg -t "TEST*" tests/
[ ERROR ] Suite 'Tests' contains no tests or tasks matching name 'TEST*' and not matching tag 'slow'.

现在,我无论如何都想定期运行这个测试,所以我尝试了

--include
论点:

$ robot --argumentfile robot-arguments.cfg -t "TEST*" tests/ --include slow
[ ERROR ] Suite 'Tests' contains no tests or tasks matching name 'TEST*' and matching tag 'slow' and not matching tag 'slow'.

因此没有运行测试,消息中没有描述这一点

no tests matching tag 'slow' and NOT matching tag 'slow'
(强调我的)。

这是不希望的;另外,我不想从配置文件中删除该行,因为它在其他地方使用。

有没有办法用命令行传递的参数来重载配置传递的参数?

我在文档中找不到任何关于此的信息。如果我在机器人配置文件中使用

--skip slow
,情况也是一样的。

robotframework
1个回答
0
投票

不,除了不使用该参数文件之外,没有立即的解决方案。 由于您处于 shell 中,因此您可以为您的案例准备不同的参数文件。例如:

sed 's/exclude slow/include slow/g' robot-arguments.cfg > slow-robot-arguments.cfg && robot --argumentfile slow-robot-arguments.cfg -t "TEST*" tests/
© www.soinside.com 2019 - 2024. All rights reserved.