Python 3.x 无法基于Robot Framework表单cmd行中的标记运行测试用例
今天,我的机器人Runner.py突然不工作了。基本上Runner.py包含基于标记运行robot测试用例的命令行命令。 Evreytime运行Runner.py时,将执行requirements.txt文件,其中的所有库将由python intepreter安装Python 3.x 无法基于Robot Framework表单cmd行中的标记运行测试用例,python-3.x,automated-tests,robotframework,execution,Python 3.x,Automated Tests,Robotframework,Execution,今天,我的机器人Runner.py突然不工作了。基本上Runner.py包含基于标记运行robot测试用例的命令行命令。 Evreytime运行Runner.py时,将执行requirements.txt文件,其中的所有库将由python intepreter安装 cmd="pip install -r Requirements.txt --trusted-host files.pythonhosted.org --user" os.system(cmd) 然后,pytho
cmd="pip install -r Requirements.txt --trusted-host files.pythonhosted.org --user"
os.system(cmd)
然后,python intepreter使用以下方法运行测试用例:
cmd="robot -i RunNow -d ../Output/Execution_%s -P ../CustomLibrary/ --extension robot ../TestSuite "%(dts)
os.system(cmd)
并使用以下方法生成报告:
cmd="python3 -m robotmetrics -R ExecutionMetrics -I ../Output/Execution_%s --logo ../../Resources/logo.png --ignorelib ['OperatingSystem'] --ignoretype ['for']" %(dts)
os.system(cmd)
其中RunNow是我在测试用例中使用的标记,TestSuite是我的文件夹,其中包含我的.robot测试文件
直到昨天,所有这些命令都工作得很好,但今天它不工作了,我得到的第一个错误是
已满足要求:c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site包中的filelock=3.0.0(来自virtualenv>=1.11.2->tox==3.0.0->robotframework jsonlibrary->-r Requirements.txt(第4行))(3.0.12)
[错误]意外错误:ValueError:没有足够的值来解包(预期为3,实际为1)
回溯(最近一次呼叫最后一次):
文件“c:\users\kbhuva2\appdata\local\programs\python38\lib\site packages\robot\utils\application.py”,第83行,在执行中
rc=self.main(参数,**选项)
文件“c:\users\kbhuva2\appdata\local\programs\python\38\lib\site packages\robot\run.py”,主目录第433行
suite=builder.build(*数据源)
文件“c:\users\kbhuva2\appdata\local\programs\python38\lib\site packages\robot\running\builder\builders.py”,第45行,内部版本
suite=parser.parse(结构)
文件“c:\users\kbhuva2\appdata\local\programs\python38\lib\site packages\robot\running\builder\builders.py”,第93行,在parse中
结构.访问(自我)
文件“c:\users\kbhuva2\appdata\local\programs\python\38\lib\site packages\robot\parsing\suitestructure.py”,第46行,访问
访问者.访问目录(self)
文件“c:\users\kbhuva2\appdata\local\programs\python 38\lib\site packages\robot\parsing\suitestructure.py”,第165行,在VISIST\U目录中
儿童访问(自我)
文件“c:\users\kbhuva2\appdata\local\programs\python\38\lib\site packages\robot\parsing\suitestructure.py”,第46行,访问
访问者.访问目录(self)
文件“c:\users\kbhuva2\appdata\local\programs\python 38\lib\site packages\robot\parsing\suitestructure.py”,第165行,在VISIST\U目录中
儿童访问(自我)
文件“c:\users\kbhuva2\appdata\local\programs\python38\lib\site packages\robot\parsing\suitestructure.py”,第44行,访问
访问者访问文件(self)
文件“c:\users\kbhuva2\appdata\local\programs\python38\lib\site packages\robot\running\builder\builders.py”,第99行,在VISIST\U文件中
套件,u=self._构建u套件(结构)
文件“c:\users\kbhuva2\appdata\local\programs\python\38\lib\site packages\robot\running\builder\builders.py”,第129行,在构建套件中
suite=parser.parse_suite_文件(源,默认值)
文件“c:\users\kbhuva2\appdata\local\programs\python\38\lib\site packages\robot\running\builder\parsers.py”,第53行,在parse\u suite\u文件中
返回自生成(套件、源、默认值)
文件“c:\users\kbhuva2\appdata\local\programs\python\38\lib\site packages\robot\running\builder\parsers.py”,第64行,在\u build中
model=get\u model(self.\u get\u source(source),data\u only=True,
文件“c:\users\kbhuva2\appdata\local\programs\python38\lib\site packages\robot\parsing\parser\parser.py”,第45行,在get\U模型中
令牌=获取令牌(仅限源、数据)
文件“c:\users\kbhuva2\appdata\local\programs\python\38\lib\site packages\robot\parsing\lexer\lexer.py”,第46行,在get\U令牌中
lexer.input(源)
文件“c:\users\kbhuva2\appdata\local\programs\python38\lib\site packages\robot\parsing\lexer\lexer.py”,第82行,输入
对于Tokenizer()中的语句。tokenize(self.\u read(source),
文件“c:\users\kbhuva2\appdata\local\programs\python38\lib\site packages\robot\parsing\lexer\tokenizer.py”,第30行,标记化
tokens=self.\u标记化\u行(行、行号,而不仅仅是数据)
文件“c:\users\kbhuva2\appdata\local\programs\python38\lib\site packages\robot\parsing\lexer\tokenizer.py”,第49行,在标记化行
对于值,是拆分器中的_数据(rstrip(line)):
文件“c:\users\kbhuva2\appdata\local\programs\python\38\lib\site packages\robot\parsing\lexer\tokenizer.py”,第68行,在\u split\u from\u管道中
_,分隔符,rest=splitter.split(第1行)
缺少output.xml文件:C:\Users\kbhuva2\git\smartpra qaautomation\output\Execution\u 20200813\u 053058\output.xml
然后我尝试了pip freeze>file.txt来安装所有库,并通过命令卸载了所有库
cmd="pip uninstall -r file.txt"
os.system(cmd)
当我在命令提示符下运行runner.py文件时,它首先卸载file.txt中的所有库,然后安装Requirements.txt中的所有库,最后说
robot未被识别为内部或外部命令robotframework,robotmetrics未被识别为内部或外部命令robotframework
所以经过一些研究,我换了
cmd="robot -i RunNow -d ../Output/Execution_%s -P ../CustomLibrary/ --extension robot ../TestSuite "%(dts)
到
及
到
现在,在做了这些更改之后,我没有得到robot或robotmetrics没有被识别为内部或外部命令robotframework,但是**我的测试用例没有被提取到与标记相关的内容,实际上它只是在Requirements.txt中执行安装所有库的命令并停止
运行Runner.py后,我的命令提示符如下所示:
已满足要求:c:\users\kbhuva2\appdata\roaming\python38\site包中的RESTinstance(来自-r Requirements.txt(第1行))(1.0.2)
已满足要求:c:\users\kbhuva2\appdata\roaming\python\python38\site包中的robotframework(来自-r Requirements.txt(第2行))(3.2.1)
已满足要求:c:\users\kbhuva2\appdata\roaming\python\python38\site包中的robotframework度量(来自-r Requirements.txt(第3行))(3.1.6)
已满足要求:c:\users\kbhuva2\appdata\roaming\python\python38\site包中的robotframework jsonlibrary(来自-r Requirements.txt(lin
cmd="python3 -m robot -i RunNow -d ../Output/Execution_%s -P ../CustomLibrary/ --extension robot ../TestSuite "%(dts)
cmd="robotmetrics -R ExecutionMetrics -I ../Output/Execution_%s --logo ../../Resources/logo.png --ignorelib ['OperatingSystem'] --ignoretype ['for']" %(dts)
cmd="python3 -m robotmetrics -R ExecutionMetrics -I ../Output/Execution_%s --logo ../../Resources/logo.png --ignorelib ['OperatingSystem'] --ignoretype ['for']" %(dts)
RESTinstance
robotframework
robotframework-metrics
robotframework-jsonlibrary
robotframework-jsonvalidator
robotframework-seleniumlibrary
robotframework-databaselibrary
robotframework-dependencylibrary
robotframework-pabot
robotframework-datadriver
robotframework-csvlib
webdrivermanager
PyMySQL
pypyodbc
deepdiff
jsondiff
DateTimeRange
pypika
robotframework-excellib