目前我在运行测试时将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?
答案 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
答案 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