Today, Suddenly my robot Runner.py was not working. Basically Runner.py contains the command line commands to run my robot testcases based on the tags. Evreytime when the Runner.py is ran, a requirements.txt file will be executed and all the libraries in it will be installed by python intepreter.
cmd="pip install -r Requirements.txt --trusted-host files.pythonhosted.org --user"
os.system(cmd)
And then the testcases are ran by python intepreter using:
cmd="robot -i RunNow -d ../Output/Execution_%s -P ../CustomLibrary/ --extension robot ../TestSuite "%(dts)
os.system(cmd)
And reports are generated using:
cmd="python3 -m robotmetrics -R ExecutionMetrics -I ../Output/Execution_%s --logo ../../Resources/logo.png --ignorelib ['OperatingSystem'] --ignoretype ['for']" %(dts)
os.system(cmd)
Where RunNow is the tag i am using in my testcases and TestSuite is my Folder which contains my .robot test files.
Till Yesterday all this commands were working perfectly, but today it was not working, the first error I got is
Requirement already satisfied: filelock<4,>=3.0.0 in c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages (from virtualenv>=1.11.2->tox==3.0.0->robotframework-jsonlibrary->-r Requirements.txt (line 4)) (3.0.12) [ ERROR ] Unexpected error: ValueError: not enough values to unpack (expected 3, got 1) Traceback (most recent call last): File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\utils\application.py", line 83, in _execute rc = self.main(arguments, **options) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\run.py", line 433, in main suite = builder.build(*datasources) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\running\builder\builders.py", line 45, in build suite = parser.parse(structure) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\running\builder\builders.py", line 93, in parse structure.visit(self) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\suitestructure.py", line 46, in visit visitor.visit_directory(self) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\suitestructure.py", line 165, in visit_directory child.visit(self) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\suitestructure.py", line 46, in visit visitor.visit_directory(self) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\suitestructure.py", line 165, in visit_directory child.visit(self) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\suitestructure.py", line 44, in visit visitor.visit_file(self) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\running\builder\builders.py", line 99, in visit_file suite, _ = self._build_suite(structure) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\running\builder\builders.py", line 129, in _build_suite suite = parser.parse_suite_file(source, defaults) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\running\builder\parsers.py", line 53, in parse_suite_file return self._build(suite, source, defaults) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\running\builder\parsers.py", line 64, in _build model = get_model(self._get_source(source), data_only=True, File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\parser\parser.py", line 45, in get_model tokens = get_tokens(source, data_only) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\lexer\lexer.py", line 46, in get_tokens lexer.input(source) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\lexer\lexer.py", line 82, in input for statement in Tokenizer().tokenize(self._read(source), File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\lexer\tokenizer.py", line 30, in tokenize tokens = self._tokenize_line(line, lineno, not data_only) File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\lexer\tokenizer.py", line 49, in _tokenize_line for value, is_data in splitter(rstrip(line)): File "c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages\robot\parsing\lexer\tokenizer.py", line 68, in _split_from_pipes _, separator, rest = splitter.split(line, 1) output.xml file is missing: C:\Users\kbhuva2\git\smartpra-qaautomation\Output\Execution_20200813_053058\output.xml
Then I tried pip freeze > file.txt to get all the libraries installed, uninstalled all of them through the command
cmd="pip uninstall -r file.txt"
os.system(cmd)
As I ran the runner.py file in the command prompt, it first uninstalled all the libraries in file.txt and installed all the libraries in Requirements.txt and ended up saying
robot is not recognized as internal or external command robotframework, robotmetrics is not recognized as internal or external command robotframework
So after some research I replaced
cmd="robot -i RunNow -d ../Output/Execution_%s -P ../CustomLibrary/ --extension robot ../TestSuite "%(dts)
to
cmd="python3 -m robot -i RunNow -d ../Output/Execution_%s -P ../CustomLibrary/ --extension robot ../TestSuite "%(dts)
and
cmd="robotmetrics -R ExecutionMetrics -I ../Output/Execution_%s --logo ../../Resources/logo.png --ignorelib ['OperatingSystem'] --ignoretype ['for']" %(dts)
to
cmd="python3 -m robotmetrics -R ExecutionMetrics -I ../Output/Execution_%s --logo ../../Resources/logo.png --ignorelib ['OperatingSystem'] --ignoretype ['for']" %(dts)
Now after making this changes I am not getting robot or robotmetrics is not recognized as internal or external command robotframework but **My Testcases are not picked up with respect to tags, actually it simply executes the command for installing all libraries in Requirements.txt and stops.
After running Runner.py my command prompt looks like:
Requirement already satisfied: RESTinstance in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 1)) (1.0.2) Requirement already satisfied: robotframework in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 2)) (3.2.1) Requirement already satisfied: robotframework-metrics in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 3)) (3.1.6) Requirement already satisfied: robotframework-jsonlibrary in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 4)) (0.3.1) Requirement already satisfied: robotframework-jsonvalidator in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 5)) (2.0.0) Requirement already satisfied: robotframework-seleniumlibrary in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 6)) (4.5.0) Requirement already satisfied: robotframework-databaselibrary in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 7)) (1.2.4) Requirement already satisfied: robotframework-dependencylibrary in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 8)) (1.0.0.post1) Requirement already satisfied: robotframework-pabot in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 9)) (1.8.1) Requirement already satisfied: robotframework-datadriver in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 10)) (0.3.6) Requirement already satisfied: robotframework-csvlib in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 11)) (1.0.1) Requirement already satisfied: webdrivermanager in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 12)) (0.8.0) Requirement already satisfied: PyMySQL in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 13)) (0.10.0) Requirement already satisfied: pypyodbc in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 14)) (1.3.4) Requirement already satisfied: deepdiff in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 15)) (5.0.2) Requirement already satisfied: jsondiff in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 16)) (1.2.0) Requirement already satisfied: DateTimeRange in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 17)) (1.0.0) Requirement already satisfied: pypika in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 18)) (0.38.0) Requirement already satisfied: robotframework-excellib in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from -r Requirements.txt (line 19)) (2.0.1) Requirement already satisfied: tzlocal in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (2.1) Requirement already satisfied: requests in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (2.24.0) Requirement already satisfied: rfc3987 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (1.3.8) Requirement already satisfied: flex in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (6.14.1) Requirement already satisfied: pygments in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (2.6.1) Requirement already satisfied: pytz in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (2020.1) Requirement already satisfied: docutils in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (0.16) Requirement already satisfied: jsonpath-ng in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (1.5.1) Requirement already satisfied: strict-rfc3339 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (0.7) Requirement already satisfied: jsonschema in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (3.2.0) Requirement already satisfied: GenSON in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from RESTinstance->-r Requirements.txt (line 1)) (1.2.1) Requirement already satisfied: beautifulsoup4 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-metrics->-r Requirements.txt (line 3)) (4.9.1) Requirement already satisfied: coverage in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-jsonlibrary->-r Requirements.txt (line 4)) (5.2.1) Requirement already satisfied: jsonpath-rw-ext>=0.1.9 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-jsonlibrary->-r Requirements.txt (line 4)) (1.2.2) Requirement already satisfied: tox==3.0.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-jsonlibrary->-r Requirements.txt (line 4)) (3.0.0) Requirement already satisfied: jsonpath-rw==1.4.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-jsonlibrary->-r Requirements.txt (line 4)) (1.4.0) Requirement already satisfied: pyjsonselect>=0.2.2 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-jsonvalidator->-r Requirements.txt (line 5)) (0.2.2) Requirement already satisfied: objectpath>=0.5 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-jsonvalidator->-r Requirements.txt (line 5)) (0.6.1) Requirement already satisfied: robotframework-pythonlibcore>=2.1.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-seleniumlibrary->-r Requirements.txt (line 6)) (2.1.0) Requirement already satisfied: selenium>=3.141.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-seleniumlibrary->-r Requirements.txt (line 6)) (3.141.0) Requirement already satisfied: tqdm in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from webdrivermanager->-r Requirements.txt (line 12)) (4.48.2) Requirement already satisfied: lxml in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from webdrivermanager->-r Requirements.txt (line 12)) (4.5.2) Requirement already satisfied: appdirs in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from webdrivermanager->-r Requirements.txt (line 12)) (1.4.4) Requirement already satisfied: setuptools in c:\users\kbhuva2\appdata\local\programs\python\python38\lib\site-packages (from pypyodbc->-r Requirements.txt (line 14)) (41.2.0) Requirement already satisfied: ordered-set>=4.0.1 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from deepdiff->-r Requirements.txt (line 15)) (4.0.2) Requirement already satisfied: typepy[datetime]<2,>=1.0.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from DateTimeRange->-r Requirements.txt (line 17)) (1.1.1) Requirement already satisfied: python-dateutil<3,>=2.4.2 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from DateTimeRange->-r Requirements.txt (line 17)) (2.8.1) Requirement already satisfied: openpyxl>=2.4.1 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from robotframework-excellib->-r Requirements.txt (line 19)) (3.0.4) Requirement already satisfied: certifi>=2017.4.17 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from requests->RESTinstance->-r Requirements.txt (line 1)) (2020.6.20) Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from requests->RESTinstance->-r Requirements.txt (line 1)) (1.25.10) Requirement already satisfied: idna<3,>=2.5 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from requests->RESTinstance->-r Requirements.txt (line 1)) (2.10) Requirement already satisfied: chardet<4,>=3.0.2 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from requests->RESTinstance->-r Requirements.txt (line 1)) (3.0.4) Requirement already satisfied: six>=1.7.3 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from flex->RESTinstance->-r Requirements.txt (line 1)) (1.15.0) Requirement already satisfied: PyYAML>=3.11 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from flex->RESTinstance->-r Requirements.txt (line 1)) (5.3.1) Requirement already satisfied: jsonpointer>=1.7 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from flex->RESTinstance->-r Requirements.txt (line 1)) (2.0) Requirement already satisfied: click>=3.3 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from flex->RESTinstance->-r Requirements.txt (line 1)) (7.1.2) Requirement already satisfied: validate-email>=1.2 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from flex->RESTinstance->-r Requirements.txt (line 1)) (1.3) Requirement already satisfied: decorator in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from jsonpath-ng->RESTinstance->-r Requirements.txt (line 1)) (4.4.2) Requirement already satisfied: ply in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from jsonpath-ng->RESTinstance->-r Requirements.txt (line 1)) (3.11) Requirement already satisfied: pyrsistent>=0.14.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from jsonschema->RESTinstance->-r Requirements.txt (line 1)) (0.16.0) Requirement already satisfied: attrs>=17.4.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from jsonschema->RESTinstance->-r Requirements.txt (line 1)) (19.3.0) Requirement already satisfied: soupsieve>1.2 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from beautifulsoup4->robotframework-metrics->-r Requirements.txt (line 3)) (2.0.1) Requirement already satisfied: pbr>=1.8 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from jsonpath-rw-ext>=0.1.9->robotframework-jsonlibrary->-r Requirements.txt (line 4)) (5.4.5) Requirement already satisfied: pluggy<1.0,>=0.3.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from tox==3.0.0->robotframework-jsonlibrary->-r Requirements.txt (line 4)) (0.13.1) Requirement already satisfied: virtualenv>=1.11.2 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from tox==3.0.0->robotframework-jsonlibrary->-r Requirements.txt (line 4)) (20.0.30) Requirement already satisfied: py>=1.4.17 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from tox==3.0.0->robotframework-jsonlibrary->-r Requirements.txt (line 4)) (1.9.0) Requirement already satisfied: mbstrdecoder<2,>=1.0.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from typepy[datetime]<2,>=1.0.0->DateTimeRange->-r Requirements.txt (line 17)) (1.0.0) Requirement already satisfied: et-xmlfile in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from openpyxl>=2.4.1->robotframework-excellib->-r Requirements.txt (line 19)) (1.0.1) Requirement already satisfied: jdcal in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from openpyxl>=2.4.1->robotframework-excellib->-r Requirements.txt (line 19)) (1.4.1) Requirement already satisfied: distlib<1,>=0.3.1 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from virtualenv>=1.11.2->tox==3.0.0->robotframework-jsonlibrary->-r Requirements.txt (line 4)) (0.3.1) Requirement already satisfied: filelock<4,>=3.0.0 in c:\users\kbhuva2\appdata\roaming\python\python38\site-packages (from virtualenv>=1.11.2->tox==3.0.0->robotframework-jsonlibrary->-r Requirements.txt (line 4)) (3.0.12)
Contents of Requirements.txt is
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
Please Help on this...
It is not easy to understand what is going on. When you say:
Till Yesterday all this commands were working perfectly, but today it was not working, the first error I got is
unexpected error: valueerror: not enough values to unpack (expected 3, got 1) robot
The first thing you need is to identify where that error is coming from. Maybe the omitted lines before the error, could help to do that.
One problem I see in this (strange) way to install and run robot
, is the fact that you do not set specific versions for the packages. If a new version of a package causes and error, then you may be in the current situation.