Sleipnir

Ruby

Swift

Unit Testing

Unit Testing, Acceptance Testing

Complete suite of testing facilities

Minitest is small, fast, and it aims to make tests clean and readable. It supports test-driven development (TDD), behavior-driven development (BDD), mocking, and benchmarking.

Sleipnir is a BDD-style framework for Swift

Sleipnir is a pure Swift BDD testing framework inspired by cedar, that is not dependent on NSObject, and does not use XCTest. Sleipnir has nice command line output and support for custom test reporters and other features, like seeded random tests invocation, focused and excluded examples/groups

xUnitSet of frameworks originating from SUnit (Smalltalk's testing framework). They share similar structure and functionality.

Yes

MiniTest is an xUnit style framework in that is has assertion functions in the style of xUnit/TDD

N/A

Client-sideAllows testing code execution on the client, such as a web browser

No

Yes

You can test front-end behaviour by defining specifications for classes, objects and functions

Server-sideAllows testing the bahovior of a server-side code

Yes

You can test various back-end components

Yes

You can test back-end behaviour by defining specifications for classes, objects and functions in the back-end

FixturesAllows defining a fixed, specific states of data (fixtures) that are test-local. This ensures specific environment for a single test

Yes

Minitest supports test fixture functions

Yes

Fixtures are available by using beforeEach{ } and afterEach{ } to setup the test parameters

Group fixturesAllows defining a fixed, specific states of data for a group of tests (group-fixtures). This ensures specific environment for a given group of tests.

Yes

Minitest has group fixtures

Yes

Group fixtures are available through the beforeAll{} and afterAll{} blocks to setup group fixtures

GeneratorsSupports data generators for tests. Data generators generate input data for test. The test is then run for each input data produced in this way.

N/A

LicenceLicence type governing the use and redistribution of the software

MIT License

MIT License

MocksMocks are objects that simulate the behavior of real objects. Using mocks allows testing some part of the code in isolation (with other parts mocked when needed)

Yes

Mocking is available through the Minitest::Mock class which is a simple and clean mock object framework

Yes

Yes, developers can create mock objects with sleipnir using a third party library like Cuckoo.

GroupingAllows organizing tests in groups

Yes

Allows grouping by nested Ruby classes. RSpec-like "context" method is available for spec syntax through the minitest-spec-context extension gem

Yes

You can declare example groups with Slepnir

OtherOther useful information about the testing framework

How to run parallel tests on your CI server to execute 1-hour test suite in 2 minutes?

Do you wait 15 minutes or even hours to run tests? Slow tests mean wasted developers time

Have you tried to run tests in parallel? How to split tests across parallel CI jobs to avoid bottleneck job?

Run tests on CI with Knapsack Pro to ensure parallel jobs finish work at a similar time. Get the fastest CI build time!

Without Knapsack Pro

you have to wait 20 minutes for slow tests running too long on red node

Loading...

Run fast parallel CI build with Knapsack Pro

CI build completes work in only 10 minutes because Knapsack Pro ensures all parallel nodes finish work at a similar time

Loading...

You can even run 20 parallel nodes to complete your CI build in 2 minutes

How it works

1. Install Knapsack Pro client in your project

2. Add Knapsack Pro client to your current CI server and run your tests in parallel

Knapsack Pro in Queue Mode will split tests in a dynamic way across parallel CI nodes to ensure each CI node finishes work at a similar time.
Thanks to that your CI build time is as fast as possible. It works with many supported CI servers.

We are using CircleCI and we noticed that builds were being limited by the slowest parallelized container. Knapsack Pro was really east to setup and we saw huge improvements right away. Thank you for making this tool!

I just logged into my account expecting it to say that I needed to add a credit card and was so surprised and delighted to see the trial doesn't count usage by calendar days but by testing days! This is incredible! I love it!!!

I just wanted to say that I really appreciate that small but very huge feature. Thank you for being so thoughtful :)