All Projects → martin-olivier → IO-TESTER

martin-olivier / IO-TESTER

Licence: MIT license
A functional test framework

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
Makefile
30231 projects

Projects that are alternatives of or similar to IO-TESTER

eat
Json based scenario testing tool(which can have test for functional and non-functional)
Stars: ✭ 41 (+28.13%)
Mutual labels:  test, test-runner, test-automation, test-framework, testing-tools, testing-framework
Wasmite
Now WebAssembly has proper testing, unit-testing and debugging 🤗
Stars: ✭ 20 (-37.5%)
Mutual labels:  test, test-automation, test-framework, testing-tools, testing-framework
Cypress
Fast, easy and reliable testing for anything that runs in a browser.
Stars: ✭ 35,145 (+109728.13%)
Mutual labels:  test, test-runner, test-automation, testing-tools
Testcafe
A Node.js tool to automate end-to-end web testing.
Stars: ✭ 9,176 (+28575%)
Mutual labels:  test, test-automation, test-framework, testing-tools
Swagger meqa
Auto generate and run tests using swagger/OpenAPI spec, no coding needed
Stars: ✭ 151 (+371.88%)
Mutual labels:  test, test-automation, testing-tools, testing-framework
Zunit
A powerful testing framework for ZSH projects
Stars: ✭ 140 (+337.5%)
Mutual labels:  test-runner, test-automation, test-framework, testing-tools
Recheck Web
recheck for web apps – change comparison tool with local Golden Masters, Git-like ignore syntax and "Unbreakable Selenium" tests.
Stars: ✭ 224 (+600%)
Mutual labels:  test-automation, test-framework, testing-tools, testing-framework
test junkie
Highly configurable testing framework for Python
Stars: ✭ 72 (+125%)
Mutual labels:  test-runner, test-automation, testing-tools, testing-framework
Testfx
MSTest V2 framework and adapter
Stars: ✭ 391 (+1121.88%)
Mutual labels:  test, test-runner, test-framework, testing-tools
PixelTest
Fast, modern, simple iOS snapshot testing written purely in Swift.
Stars: ✭ 56 (+75%)
Mutual labels:  test, test-framework, testing-tools, testing-framework
Telegraf-Test
Telegraf Test - Simple Test ToolKit of Telegram Bots
Stars: ✭ 22 (-31.25%)
Mutual labels:  test, test-automation, test-framework, testing-tools
pysys-test
PySys System Test Framework
Stars: ✭ 14 (-56.25%)
Mutual labels:  test-automation, test-framework, testing-framework
extensiveautomation-server
Extensive Automation server
Stars: ✭ 19 (-40.62%)
Mutual labels:  test-automation, testing-tools, testing-framework
Carina
Carina automation framework: Web, Mobile, API, DB
Stars: ✭ 549 (+1615.63%)
Mutual labels:  test, test-automation, testing-tools
karate
Test Automation Made Simple
Stars: ✭ 6,384 (+19850%)
Mutual labels:  test-automation, testing-tools, testing-framework
api-test
🌿 A simple bash script to test JSON API from terminal in a structured and organized way.
Stars: ✭ 53 (+65.63%)
Mutual labels:  test, testing-tools, testing-framework
Mocha
☕️ simple, flexible, fun javascript test framework for node.js & the browser
Stars: ✭ 20,986 (+65481.25%)
Mutual labels:  test, test-framework, testing-tools
Hitchhiker
a Restful Api test tool
Stars: ✭ 2,175 (+6696.88%)
Mutual labels:  test, test-automation, testing-tools
Junit Dataprovider
A TestNG like dataprovider runner for JUnit with many additional features
Stars: ✭ 226 (+606.25%)
Mutual labels:  test, test-runner, testing-tools
testza
Full-featured test framework for Go! Assertions, fuzzing, input testing, output capturing, and much more! 🍕
Stars: ✭ 409 (+1178.13%)
Mutual labels:  test, test-framework, testing-framework

IO Tester

Version MIT license CPP Version

GitHub watchers GitHub forks GitHub stars

workflow

The goal of this software is to take files as parameter that contains lists of inputs and expected outputs and to tell the user if the tests succeed, failed or crashed.

⚠️ Requirements

IO Tester works on MacOS, Ubuntu, Fedora, ArchLinux

To build the project you will need cmake with a version upper or equal to 3.17

pip install cmake

💻 Installation

  1. Clone this repository
  2. Go to the IO-TESTER folder
  3. Execute the following command :
    sudo make install (the binary will be installed at usr/local/bin)

⭐ Don't forget to put a star if you like the project!

📒 Manual

USAGE:
        IO_Tester test.io [OPTIONS]

DESCRIPTION:
        test.io         file that contains functional tests

OPTIONS:
        -h --help       display this help menu
        -v --version    display the actual version
        -c --changelog  display the changelog
        -u --update     update this software (sudo)
        --details       display the output difference in the shell
        --diff          display the output difference in Visual Studio Code

RETURN VALUE:
        0               if all tests succeed
        1               if one or more tests failed or crashed
        84              if IO_Tester failed to load a test file

✍️ Usage

Test files must follow this pattern:

[Test Name] command
expected output
[END]

Here we want to test a program that takes parameters and prints them in the standard output. We will also test some system commands
Let's create a test file:

# test.io

# set the default timeout of the tests to 1 sec:

@default timeout 1

[Simple Print] python3 printer test
test

[END]

[Multiple Prints] python3 printer Hello World !
Hello
World
!

[END]

[Oooops] python3 printer I am bad
You
are
bad

[END]

[Power] whoami
root

[END]

# disable stdout and stderr catch for this test:

@stdout false
@stderr false

[ZZZzzz] sleep 5
[END]

Then execute IO_Tester with files that contains the tests as arguments: example_details
You can add --diff to display the difference between the real, and the expected output in Visual Studio Code when a test fails: example_diff

You can add the number of maximum failed tests to display after --details or --diff.
You can also run multiple test files at once:

IO_Tester test1.io test2.io test3.io --diff 1

💬 Test Parameters

You can change the value of a parameter for the next test:

@stdout  <bool>  (default: true)
@stderr  <bool>  (default: true)
@return  <int>   (default: 0)
@timeout <float> (default: 3.0)

You can also change the default value of a parameter:

@default parameter value

💡 Build Tips

If you want to uninstall IO Tester:
make uninstall

If you just want to get the binary without installing:
make

If you want to remove all objects files:
make clean

If you want to remove all objects files and the binary:
make fclean

👤 Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].