【问题标题】:Robot Framework parsing for Notepad++ Function ListNotepad++函数列表的Robot Framework解析
【发布时间】:2017-06-18 18:12:27
【问题描述】:

我正在尝试使用类结构为 Robot Framework 脚本创建一个 Notepad++ function list,以将 4 个不同的部分封装在一个机器人文件中:

  1. 设置
  2. 变量
  3. 测试用例
  4. 关键字

使用文档和一些实验,我创建了一个简单的过滤器,它将根据关键字和测试用例从行首开始返回。但是更复杂的类分组我需要一些正则表达式的帮助。似乎 *** 应该有助于清晰的标记。

这是我迄今为止所拥有的:

我已经安装了User Defined Robot Syntax Highlighting 并将以下部分添加到 %app%\notepad++\functionList.xml

<association userDefinedLangName="Robotframework" id="robot_function"/>

然后在解析器部分:

<parser 
  id="robot_function" 
  displayName="Robot Section" 
  commentExpr="((#.*?$)|(^Documentation*\w.*?$)|(^Meta*\w.*?$))|(^Library*\w.*?$)">
   <function
     mainExpr="^(\w.*?$)"
     displayMode="$functionName">
     <functionName>
       <nameExpr expr="^(\w.*?$)"/>
     </functionName>
   </function>
</parser>

所以,我遇到问题的部分是:

  <classRange mainExpr="^(\*).*(?=\n\S|\Z)">
     <className>
        <nameExpr expr="^(\w.*?$)"/>
     </className>
     <function mainExpr="^(\w.*?$)">
        <functionName>
          <nameExpr expr="^(\w.*?$)"/>
        </functionName>
     </function>
   </classRange>

下面是一个示例机器人文件

*** Variables ***
${variable}    variable value

*** Settings ***
Documentation    multi
...              line
...              documentation.
Metadata         Version    0.1
Library    LibraryName    some variable
Library    String

*** Test Cases ***
Test Case RF 01
   Run Keyword    ${TEST_NAME}

Test Case RF 02
   Run Keyword    ${TEST_NAME} 

*** Keywords ***
Test Case RF ${tc}
    Sleep     30ms

Test Keyword 
    Sleep   300ms

我确信如果我可以使它适用于其中一个部分,例如测试用例,那么我也可以将它应用到其他部分。我主要对测试用例和关键字感兴趣。

【问题讨论】:

    标签: regex list function notepad++ robotframework


    【解决方案1】:

    通过以下设置,我可以将 Notepad++ 函数列表用于 Robot Framework 关键字和测试用例:

    <association id="robot_syntax"      userDefinedLangName="Robotframework"   />
    <association id="robot_syntax"      ext=".robot"                           />
    
    
            <parser
                displayName="Robot Framework"
                id         ="robot_syntax"
                commentExpr="(^(\h*)|(#.*?)|(\[\w.*?)|(Documentation*\w.*?)|(Library*\w.*?)|(Metadata*\w.*?)|(Resource*\w.*?)|(Test (Setup|Teardown|Template|Timeout)*\w.*?)||(Suite (Setup|Teardown)*\w.*?)|((Force|Default) Tags*\w.*?))$"
            >
                <function mainExpr="(?m-s:(?:^)[A-Za-z0-9].*$)"/>
            </parser>
    

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 2017-01-20
      • 2014-03-29
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 1970-01-01
      相关资源
      最近更新 更多