All Projects → indutny → Mini Test.c

indutny / Mini Test.c

Minimalistic portable test runner for C projects

Programming Languages

c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to Mini Test.c

node-bogota
🚀 Run tape tests concurrently with tap-spec output
Stars: ✭ 15 (+25%)
Mutual labels:  tap, test
Zap
A streamable structured interface for real time reporting of developer tools.
Stars: ✭ 114 (+850%)
Mutual labels:  test, tap
Fishtape
100% pure-Fish test runner.
Stars: ✭ 283 (+2258.33%)
Mutual labels:  test, tap
cxx-tap
Test Anything Protocol (TAP) Producer for C++
Stars: ✭ 22 (+83.33%)
Mutual labels:  tap, test
Zora
Lightest, yet Fastest Javascript test runner for nodejs and browsers
Stars: ✭ 356 (+2866.67%)
Mutual labels:  test, tap
Faker
Faker is a pure Elixir library for generating fake data.
Stars: ✭ 673 (+5508.33%)
Mutual labels:  test
Aruba
Test command-line applications with Cucumber-Ruby, RSpec or Minitest. The most up to date documentation can be found on Cucumber.Pro (https://app.cucumber.pro/projects/aruba)
Stars: ✭ 900 (+7400%)
Mutual labels:  test
Istanbuljs
monorepo containing the various nuts and bolts that facilitate istanbul.js test instrumentation
Stars: ✭ 656 (+5366.67%)
Mutual labels:  tap
React Fake Props
🔮 Magically generate fake props for your React tests
Stars: ✭ 604 (+4933.33%)
Mutual labels:  test
Capture Stream
Capture stream output.
Stars: ✭ 10 (-16.67%)
Mutual labels:  test
Pytest Patterns
A couple of examples showing how pytest and its plugins can be combined to solve real-world needs.
Stars: ✭ 24 (+100%)
Mutual labels:  test
Webdriverio
Next-gen browser and mobile automation test framework for Node.js
Stars: ✭ 7,214 (+60016.67%)
Mutual labels:  test
Cypress React Unit Test
Unit test React components using Cypress
Stars: ✭ 685 (+5608.33%)
Mutual labels:  test
Jest In Case
Jest utility for creating variations of the same test
Stars: ✭ 902 (+7416.67%)
Mutual labels:  test
Qa bible
Библия QA это почти 300 страниц обновляемой смеси ответов на вопросы с реальных собеседований на QA, полезных ресурсов и статей, перевода интересного контента с зарубежных ресурсов и агрегации материала с отечественных.
Stars: ✭ 657 (+5375%)
Mutual labels:  test
Django Jenkins
Plug and play continuous integration with django and jenkins
Stars: ✭ 933 (+7675%)
Mutual labels:  test
Pgtap
PostgreSQL Unit Testing Suite
Stars: ✭ 631 (+5158.33%)
Mutual labels:  tap
Cocotb
cocotb, a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python
Stars: ✭ 740 (+6066.67%)
Mutual labels:  test
Phpstorm Plugin
Integrate atoum inside PhpStorm
Stars: ✭ 23 (+91.67%)
Mutual labels:  test
Smhasher
Hash function quality and speed tests
Stars: ✭ 719 (+5891.67%)
Mutual labels:  test

mini-test.c

Minimalistic portable test runner for C projects.

Usage

Tutorial

asciicast

Minimal configuration

#define TEST_LIST(V) \
    V(first_test)    \
    V(second_test)

#include "mini/main.h"

TEST_IMPL(first_test) {
  CHECK_EQ(0, 1, "What else did I expect to happen?");
}

TEST_IMPL(second_test) {
  CHECK(0 == 0, "YES, THIS IS TRUE");
  CHECK_NE(0, 1, "What else did I expect to happen?");
}

Optimal configuration

This type of configuration requires at least three files:

  • test-list.h with TEST_LIST define
  • runner.c with just test-list.h and mini/main.h includes
  • test-first.c (and others) for each individual test. These files have test-list.h and mini/test.h includes and TEST_IMPL(...) {} just as in minimal configuration above.

Installation

This project is intended to be used with gypkg. The .gyp file may look like this:

{
  "targets": [{
    "target_name": "test",
    "type": "executable",

    "variables": {
      "gypkg_deps": [
        "git://github.com/indutny/[email protected]^v1.1.0 => mini-test.gyp:mini-test",
      ],
    },

    "dependencies": [
      "<[email protected](gypkg deps <(gypkg_deps))",
    ],

    "sources": [
      "test/runner.c",
      "test/test-first-test.c",
      "test/test-second-test.c",
    ],
  }],
}

LICENSE

This software is licensed under the MIT License.

Copyright Fedor Indutny, 2017.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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].