2017-06-07 18 views
1

我已經爲Robot Framework(myapi.py)製作了一個庫。如果我把它放在與我的機器人測試相同的目錄中,我可以像這樣導入庫:導入的庫'owaspapi'不包含關鍵字。 (如果它使用點安裝)

Library myapi.py 

它工作得很好。

但是,我使庫pip可以安裝,以便其他人可以輕鬆地將其用於其他項目。圖書館用pip安裝得很好。我也改變了機器人測試導入這樣的庫:當我運行機器人的測試,我得到警告

Library myapi 

[WARN]導入庫「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'] 
    ) 

初始化的.py內容是:

from .version import __version__ 

The 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,我會丟失什麼...?爲什麼它會抱怨沒有關鍵字?

+0

您是否嘗試過開放交互式解釋,然後安裝後它導入你的包?試試看,並確認你輸入的東西是a)已安裝的軟件包,b)有你認爲它應該具有的功能。 –

+0

這是一個惡作劇的想法。一旦我嘗試過,我注意到那些在交互式解釋器中也不起作用。原因是@ a-kootstra的評論。 –

回答

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 
+0

感謝您的支持!得到它的工作! –

相關問題