Project restart
This commit is contained in:
247
README.md
Normal file
247
README.md
Normal file
@@ -0,0 +1,247 @@
|
||||
# Documentation
|
||||
|
||||
[See here](doc/manual/testium_manual.pdf).
|
||||
|
||||
# Installation
|
||||
|
||||
## Installation from local pypi repository
|
||||
|
||||
### Virtualenv
|
||||
|
||||
It is strongly recommended to create a python virtual environment to be able to install testium with pip.
|
||||
|
||||
This method is also required for git sources install and debug.
|
||||
|
||||
#### Virtualenv setup
|
||||
|
||||
Creation of the python virtual environment:
|
||||
|
||||
python3 -m venv <my_venv_dir>/<my_python_venv>
|
||||
|
||||
Each time it is needed to enter the virtual environment, just execute:
|
||||
|
||||
source <my_venv_dir>/<my_python_venv>/bin/activate
|
||||
|
||||
this line can also be inserted in the `.bashrc` to be automatically called in a linux terminal.
|
||||
|
||||
It is possible to configure the *code* IDE to use this virtual environment by setting it
|
||||
in the preferences: "File->Settings", search "venv", then setup the virtual env.
|
||||
|
||||
And when properly set, you can select the interpreter from your newly created venv.
|
||||
|
||||
### install testium
|
||||
|
||||
From the python virtual environment run:
|
||||
|
||||
pip install testium
|
||||
|
||||
all the dependencies are automatically installed in the virtual env.
|
||||
|
||||
### run testium
|
||||
|
||||
From the python virtual environment just run:
|
||||
|
||||
python -m testium
|
||||
|
||||
or simply
|
||||
|
||||
testium
|
||||
|
||||
## Installation from sources
|
||||
|
||||
The python virtual environment should be installed first (see above).
|
||||
|
||||
### Requirements
|
||||
|
||||
In the virtual environment, the following modules must be installed:
|
||||
|
||||
* pyside6
|
||||
* pyserial
|
||||
* pyyaml
|
||||
* pexpect
|
||||
* gitpython
|
||||
* jinja2
|
||||
* colorama
|
||||
* matplotlib
|
||||
* junit-xml
|
||||
* lxml
|
||||
|
||||
A `requirements.txt` file is also available in the git repository in the path `testium/src/`.
|
||||
|
||||
### Git repository
|
||||
|
||||
Clone testium from the company's git repository.
|
||||
|
||||
### Tagged version
|
||||
|
||||
In the case testium must be executed at a given release, the tagged version
|
||||
is expected.
|
||||
|
||||
To know the tags which exist for the software, just execute the following command in the `testium` directory:
|
||||
|
||||
$ git tag --list
|
||||
|
||||
Then the list of tags is displayed.
|
||||
|
||||
To switch to the considered tag, execute the following commands:
|
||||
|
||||
$ git checkout <tag_name>
|
||||
|
||||
If you want to be sure that you're on the right tag, just execute:
|
||||
$ git status
|
||||
|
||||
And the console may return:
|
||||
|
||||
HEAD detached at <tag_name>
|
||||
nothing to commit, working tree clean
|
||||
$
|
||||
|
||||
### Execution from sources
|
||||
|
||||
**Windows**
|
||||
|
||||
$ python.exe <path_to_testium>\src\testium
|
||||
|
||||
**Linux**
|
||||
|
||||
$ python <path_to_testium>/src/testium
|
||||
|
||||
# Documentation generation
|
||||
|
||||
This section describes how to generate the documentation.
|
||||
|
||||
The testium's user's manual is genearted with the help of the sphinx
|
||||
framework.
|
||||
|
||||
## Install sphinx
|
||||
|
||||
pip install sphinx
|
||||
|
||||
## Generate the doc
|
||||
|
||||
Execute
|
||||
|
||||
doc/manual/sphinx/./build_doc.sh
|
||||
|
||||
This command works if texlive package has been installed on the system. It can be done by invoking the following command.
|
||||
|
||||
sudo apt install texlive-full
|
||||
|
||||
# QT GUI
|
||||
|
||||
## QT GUI modification
|
||||
|
||||
Open the ".ui" file with `qtcreator` and modify the gui. Then regenerate the python code.
|
||||
|
||||
On linux, a helper script has been created:
|
||||
scripts/./qt_generate.sh
|
||||
|
||||
# Debugging
|
||||
|
||||
In order to debug testium or your python script executed within testium.
|
||||
|
||||
## In VSCODE
|
||||
|
||||
This is the prefered method :
|
||||
|
||||
1. Create a debug configuration like the following:
|
||||
|
||||
```
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Python : testium",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/src/testium",
|
||||
"console": "integratedTerminal",
|
||||
"args": ["-g"],
|
||||
"justMyCode": true
|
||||
},
|
||||
]
|
||||
```
|
||||
|
||||
2. Install debugpy module in python
|
||||
|
||||
python -m pip install debugpy
|
||||
3. Then got to the "RUN AND DEBUG" tab and press the play button.
|
||||
4. A testium window will pops up ; start execution of your tum.
|
||||
5. Do not forget to put breakpoints where you want to investigate.
|
||||
|
||||
## Icons
|
||||
|
||||
Icons are coming from the following site: https://github.com/free-icons/free-icons.git
|
||||
|
||||
# testium Release
|
||||
|
||||
## Pre-requisite
|
||||
|
||||
A `python` virtual environment must have been set as described above.
|
||||
|
||||
### Install appimage-builder
|
||||
|
||||
Install `appimage-builder` package using pip.
|
||||
|
||||
### Install pyinstaller
|
||||
|
||||
Install `pyinstaller` package using pip.
|
||||
|
||||
## Generate the binary package
|
||||
|
||||
The procedure for a binary release is as follows:
|
||||
|
||||
1. update the `release_note.txt` file
|
||||
2. modify the version in `src/VERSION` file
|
||||
3. be sure that the documentation is up to date, and if not execute `doc/manual/sphinx/build_doc.sh` script
|
||||
4. push modifications and create a tag with the new version on the git repository
|
||||
5. generate an appimage by calling `package/appimage/./build.sh`
|
||||
6. generate an executable file by calling `package/pyinstaller/./build.sh`
|
||||
7. run the complete validation test for each generated binary
|
||||
8. check that all the validation results are OK
|
||||
9. On artifactory add the following files to a new testium version:
|
||||
|
||||
* release note
|
||||
* testium binary(ies)
|
||||
* testium user's manual
|
||||
* validation results
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
## The testium exe crashes `wl_proxy_marshal_flags`
|
||||
|
||||
### Error message
|
||||
|
||||
/testium: symbol lookup error: /tmp/_MEIOhDCPF/libQt6WaylandClient.so.6: undefined symbol: wl_proxy_marshal_flags
|
||||
|
||||
### Solution
|
||||
|
||||
Set the appropriate environment variable
|
||||
|
||||
export QT_QPA_PLATFORM=xcb
|
||||
testium
|
||||
|
||||
## xcb plugin missing
|
||||
|
||||
### Error message
|
||||
|
||||
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
|
||||
|
||||
### Solution
|
||||
|
||||
A package is missing
|
||||
|
||||
sudo apt install libxcb-cursor0
|
||||
sudo apt-get install libicu-dev
|
||||
sudo apt-get install libxcb-cursor-dev
|
||||
|
||||
## The testium appimage crashes when opening a file
|
||||
|
||||
This is usually because wayland is defined as the default X server.
|
||||
|
||||
To change it :
|
||||
|
||||
* Disable Wayland by uncommenting WaylandEnable=false in the `/etc/gdm3/daemon.conf`
|
||||
* Add `QT_QPA_PLATFORM=xcb` in `/etc/environment`
|
||||
* After a reboot, check that the environment variable value returns `x11`:
|
||||
|
||||
$ echo $XDG_SESSION_TYPE
|
||||
x11
|
||||
Reference in New Issue
Block a user