导入的库'owaspapi'不包含任何关键字。 (如果使用pip安装)

时间:2017-06-07 12:01:01

标签: python-2.7 pip robotframework keyword setuptools

我为Robot Framework(myapi.py)创建了一个库。如果我将它放在与我的机器人测试相同的目录中,我可以像这样导入库:

Library    myapi.py

它运作得很好。

但是,我使库pip可以安装,以便其他人可以轻松地在其他项目中使用它。该库安装与pip一样好。我还改变了机器人测试以导入这样的库:

Library    myapi

当我运行机器人测试时,我收到警告:

  

[警告]导入的库'myapi'不包含任何关键字。

这是(pip可安装的)库文件结构:

setup.py
myapi
  \__init__.py
  \myapi.py
  \version.py

setup.py内容为:

from setuptools import setup, find_packages

exec(open('myapi/version.py').read())

    setup(
        name='myapi',
        version=__version__,
        packages=['myapi'],
        install_requires=['requests']
    )

init .py内容为:

from .version import __version__

version.py内容为:

__version__ = '1.1.0'

myapi.py内容(仅包含我的第一个功能):

import requests
import time
from time import strftime
import urllib2


__all__ = ['create_new_MY_session']

def create_new_MY_session():
    session_name = strftime('my_session_%S_%H_%M_%d_%m_%Y')
    r = requests.get("http://localhost:8080/JSON/core/action/newSession/?zapapiformat=JSON&name=" + session_name + "/'")
    print ("Creating new session: " + session_name + ". Status code...")
    print (r.status_code)
    assert (r.status_code) == 200

最后是机器人测试的开始(login.robot):

*** Settings ***

Suite Setup       Open Firefox With Proxy
Suite Teardown    Close Browser

Library           mypapi
Library           OperatingSystem
Library           Selenium2Library

Resource    ws_keywords/product/webui.robot

*** Test Cases ***

MY Start New MY Session
    Create New MY Session

我想知道当它位于机器人测试旁边时,库是否正常工作,如果我将其设为pip可安装,我会错过什么?为什么抱怨没有关键字?

1 个答案:

答案 0 :(得分:1)

在您的myapi.py文件中,您错过了类引用。当文件放在Robot Framework项目中时,这不是问题,但是在创建pip可安装模块时,这是必需的。一个基本的Python库代码示例如下:

<强> myapi.py

class myapi(object):

    ROBOT_LIBRARY_VERSION = 1.0

    def __init__(self):
        pass

    def keyword(self):
        pass