在启动测试套件之前设置pythonpath

时间:2015-11-06 18:48:33

标签: robotframework

目前我在运行测试时将pythonpath设置为pybot --pythonpath ~/Test_suite main.robot

我还看到有选项Set Environment Variable PYTHONPATH ${CURDIR}来设置机器人框架。但它不会在主要设置之前运行

*** Settings ***
Documentation    Suite description
Resource         settings.robot

以下是settings.robot文件

*** Settings ***
Resource         keywords/keywords_test.robot
Library          tests.test_1.TestClass

如何在运行套件之前设置pythonpath?

3 个答案:

答案 0 :(得分:3)

你无法做你想做的事。在运行任何测试或关键字之前,都会处理这些设置。您可以在命令行中使用--pythonpath选项,或在开始测试之前设置环境变量PYTHONPATH。

答案 1 :(得分:1)

您可以通过添加到套件init中的sys.path来实现。 例如。您可以使用以下命令在test目录中创建__init __。机器人文件。

*** Settings ***
Suite Setup    Setup before all tests

*** Keywords ***
Setup before all tests
    evaluate    sys.path.append(os.path.join("path", "to", "library"))    modules=os, sys

在官方文档中描述:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#configuring-sys-path-programmatically

答案 2 :(得分:0)

我不确定这是否有用,但我认为实际上可能有办法做你正在谈论的事情。它非常笨拙,所以忍受我。

你无法在Robot Framework中真正做到这一点,但是如果你将你的视野扩展到Python,那么我发现了一个简洁的小漏洞。如果您查看其他帖子如何为Robot框架创建自定义Python库,您会注意到有一个名为__init__的必需方法,其参数为(self)。我相信这是创建库实例时第一个运行的代码。鲜为人知的事实是,您可以在创建Library实例时添加参数。在您的情况下,〜/ Test_suite将是您将传递的值。

在理论中,因为我没有尝试过这个,你可以告诉__init__(self, path_in)使用以下代码运行你的BuiltIn关键字:

self.BuiltIn().set_environment_variable('PYTHONPATH', path_in)

不要忘记在文件顶部使用以下import语句。

from robot.libraries.BuiltIn import BuiltIn
相关问题