Code Monkey home page Code Monkey logo

rellu's Introduction

Robot Framework

Introduction

Robot Framework ® is a generic open source automation framework for acceptance testing, acceptance test driven development (ATDD), and robotic process automation (RPA). It has simple plain text syntax and it can be extended easily with generic and custom libraries.

Robot Framework is operating system and application independent. It is implemented using Python which is also the primary language to extend it. The framework has a rich ecosystem around it consisting of various generic libraries and tools that are developed as separate projects. For more information about Robot Framework and the ecosystem, see http://robotframework.org.

Robot Framework project is hosted on GitHub where you can find source code, an issue tracker, and some further documentation. Downloads are hosted on PyPI.

Robot Framework development is sponsored by non-profit Robot Framework Foundation. If you are using the framework and benefiting from it, consider joining the foundation to help maintaining the framework and developing it further.

Latest version

License

Installation

If you already have Python with pip installed, you can simply run:

pip install robotframework

For more detailed installation instructions, including installing Python, see INSTALL.rst.

Robot Framework requires Python 3.8 or newer and runs also on PyPy. The latest version that supports Python 3.6 and 3.7 is Robot Framework 6.1.1. If you need to use Python 2, Jython or IronPython, you can use Robot Framework 4.1.3.

Example

Below is a simple example test case for testing login to some system. You can find more examples with links to related demo projects from http://robotframework.org.

*** Settings ***
Documentation     A test suite with a single test for valid login.
...
...               This test has a workflow that is created using keywords in
...               the imported resource file.
Resource          login.resource

*** Test Cases ***
Valid Login
    Open Browser To Login Page
    Input Username    demo
    Input Password    mode
    Submit Credentials
    Welcome Page Should Be Open
    [Teardown]    Close Browser

Usage

Tests (or tasks) are executed from the command line using the robot command or by executing the robot module directly like python -m robot .

The basic usage is giving a path to a test (or task) file or directory as an argument with possible command line options before the path:

robot tests.robot
robot --variable BROWSER:Firefox --outputdir results path/to/tests/

Additionally, there is the rebot tool for combining results and otherwise post-processing outputs:

rebot --name Example output1.xml output2.xml

Run robot --help and rebot --help for more information about the command line usage. For a complete reference manual see Robot Framework User Guide.

Documentation

Support and Contact

Contributing

Interested to contribute to Robot Framework? Great! In that case it is a good start by looking at the CONTRIBUTING.rst. If you do not already have an issue you would like to work on, you can check issues with good new issue and help wanted labels.

Remember also that there are many other tools and libraries in the wider Robot Framework ecosystem that you can contribute to!

License and Trademark

Robot Framework is open source software provided under the Apache License 2.0. Robot Framework documentation and other similar content use the Creative Commons Attribution 3.0 Unported license. Most libraries and tools in the ecosystem are also open source, but they may use different licenses.

Robot Framework trademark is owned by Robot Framework Foundation.

rellu's People

Contributors

aaltat avatar pekkaklarck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rellu's Issues

Support preview releases with dev prefix like `1.0a1.dev2`

Currently rellu only supports final versions like 1.0, previews like 1.0.1a1 and dev versions like 1.0.1.dev1. This means that we need to go, for example, from 1.0a1 back to 1.0.dev1 when 1.0a2.dev1 would be better. This needs to be implemented!

Remove tooling related to using git

There are various Git workflows and updating our tooling to support them all is a big task. Much easier to list those Git commands in BUILD.rst and let users configure them if needed. Additionally, there's not much benefits in using

invoke set-version dev --push

compared to

invoke set-version dev
git commit -m "Back to dev version" rellu/__init__.py
git push

when all these commands anyway are listted on BUILD.rst.

Remove tooling related to creating releases

Different projects have different needs related to creating releases:

  • Are wheels needed?
  • Do universal wheels work?
  • Is there a need to test packages locally?

Supporting these all with invoke tasks is possible but certainly not trivial. Instead of that, it's better to just add these standard commands to BUILD.rst and fine-tune them accordingly:

python setup.py sdist [bdist_wheel [--universal]]
twine upload dist/*

Update README

We are in beta, getting closer to 1.0, and need a better README.

Installation using sdist fails

When installing rellu 0.4 with pip I get error:

~/workspace/SeleniumLibrary$ sudo pip install -r requirements-build.txt 
The directory '/home/godtdd/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/godtdd/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Requirement already satisfied: invoke>=0.20 in /usr/local/lib/python2.7/dist-packages (from -r requirements-build.txt (line 2))
Collecting rellu>=0.4 (from -r requirements-build.txt (line 3))
  Downloading rellu-0.4.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-k5Sqv7/rellu/setup.py", line 23, in <module>
        with open(join(CURDIR, 'requirements.txt')) as requirements:
    IOError: [Errno 2] No such file or directory: '/tmp/pip-build-k5Sqv7/rellu/requirements.txt'
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-k5Sqv7/rellu/
~/workspace/SeleniumLibrary$ 

Use `priority: high` instead of `prio-high`

With labels that effectively are name-value pairs we've used style like prio-high. The reason Google Code used it and grouped labels using this style together based on the prefix. GitHub doesn't unfortunately support such functionality (it was one of the really good features in Google Code issue tracker), but we and others still use such name-value pairs as labels.

On GitHub I've seen style prio: high used more often, though, and tend to like it myself as well. Would also change prio to priority at the same time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.