python测试使用机器人框架

时间:2021-01-08 05:00:11

标签: python-3.x robotframework

有没有人有使用 Robot Framework 测试 Python 程序的好例子。

我正在尝试使用 --test 参数运行我的 python 程序 (chaptermarkers.py) 并检查结果。

传递这个论点是 2 天的 google 搜索奥德赛。

[文件:common_resourses.robot]

*** Settings ***
Library  OperatingSystem

*** Variables ***
${CHAPTERMARKERS_EXEC}  chaptermarkers
${LOG LEVEL}    DEBUG

*** Keywords ***
# TODO

[测试用例:文件:default_suite.robot]

*** Settings ***
Documentation       *Test Chapter Markers runs but has error in filename*
Metadata    Github  https://github.com/cbitterfield/chaptermarkers
Metadata    Version 1.0.0
Metadata    Executed At    ${HOST}


# External libraries imports
Library  Process
Library  String

Resource    common_resources.robot

*** Variables ***
${EXPECTED_MESSAGE}  Movie Filename
${REPORT FILE}  report.html
${LOG FILE}     logfile.html
${LOG LEVEL}    DEBUG
${OUTPUT DIR}   /Users/colin/IdeaProjects/chaptermarkers
${test} --test


*** Test Cases ***

    Scenerio test chaptermarkers run
        [Tags]    DEBUG
        [Documentation]     Verifies that chaptermarkers is executed well and without errors
        ${result}=  Run process     ${CHAPTERMARKERS_EXEC} ${test}
        Should Contain  ${result.stdout}    ${EXPECTED_MESSAGE}
        Should Be Empty     ${result.stderr}

无论我如何尝试在程序后放置一些东西,都会出现目录丢失的错误。

[疯狂的无法使用的错误消息]

$ robot --loglevel DEBUG --log log.html --report report.html stests/default_suite.robot 
[ ERROR ] Error in file '/Users/colin/IdeaProjects/chaptermarkers/stests/default_suite.robot' on line 25: Invalid variable name '${test} --test'.
==============================================================================
Default Suite :: *Test Chapter Markers runs but has error in filename*        
==============================================================================
Scenerio test chaptermarkers run :: Verifies that chaptermarkers i... | FAIL |
Variable '${test}' not found. Did you mean:
    ${TEST_TAGS}
    ${TEST_NAME}
------------------------------------------------------------------------------
Default Suite :: *Test Chapter Markers runs but has error in filen... | PASS |
0 critical tests, 0 passed, 0 failed
1 test total, 0 passed, 1 failed
==============================================================================
Output:  /Users/colin/IdeaProjects/chaptermarkers/output.xml
[ ERROR ] Unexpected error: FileNotFoundError: [Errno 2] No such file or directory: '/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/htmldata/rebot/log.html'
Traceback (most recent call last):
  File "/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/utils/application.py", line 83, in _execute
    rc = self.main(arguments, **options)
  File "/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/run.py", line 451, in main
    writer.write_results(settings.get_rebot_settings())
  File "/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/reporting/resultwriter.py", line 65, in write_results
    self._write_log(results.js_result, settings.log, config)
  File "/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/reporting/resultwriter.py", line 79, in _write_log
    self._write('Log', LogWriter(js_result).write, path, config)
  File "/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/reporting/resultwriter.py", line 86, in _write
    writer(path, *args)
  File "/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/reporting/logreportwriters.py", line 43, in write
    self._write_file(path, config, LOG)
  File "/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/reporting/logreportwriters.py", line 36, in _write_file
    writer.write(template)
  File "/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/htmldata/htmlfilewriter.py", line 33, in write
    for line in HtmlTemplate(template):
  File "/Users/colin/IdeaProjects/chaptermarkers/env/lib/python3.8/site-packages/robot/htmldata/normaltemplate.py", line 28, in __iter__
    with codecs.open(self._path, encoding='UTF-8') as file:
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/codecs.py", line 905, in open
    file = builtins.open(filename, mode, buffering)
(env) razzamataz:chaptermarkers colin$ 

1 个答案:

答案 0 :(得分:0)

我注意到的一些事情:

  1. 变量部分中的 ${test}--test 之间至少需要有两个空格。你只提供了一个。同样在 Run Process 行中,exec 和argument 之间应该至少有两个空格。规则是 RF 使用两个空格作为分隔符。
  2. 您的测试名称缩进了。 RF 将其解释为出乎意料的关键字调用。它应该从没有缩进的行首开始
  3. 文件丢失错误看起来很奇怪,我不知道原因。该文件是 RF 库的一部分,如果您正确安装了 RF,它应该在那里。建议您新建一个虚拟环境,如果不太复杂的话再试一次。

附言仅供参考,所有 RF 内置库都可以在这里找到: https://robotframework.org/#libraries