Elixir Q & A


How to run tests in Elixir?

Running tests in Elixir is a straightforward process thanks to its built-in testing framework called ExUnit. ExUnit provides a set of commands and conventions that make it easy to write and execute tests for your Elixir projects. Here’s a step-by-step guide on how to run tests in Elixir:


  1. Test File Structure: In your Elixir project, tests are typically organized in files with the `*_test.exs` naming convention. These files contain test cases for specific modules or functionality.


  1. Writing Tests: Inside your test files, you write test cases using the `ExUnit.Case` module. Each test case is defined as a function using the `test/2` macro. You specify the expected behavior and assertions within these test functions.


  1. Running All Tests: To run all the tests in your project, open a terminal and navigate to the project’s root directory. Then, use the `mix test` command. This command will automatically discover and execute all test files and cases within your project.


  1. Running Specific Tests: If you want to run specific tests or test files, you can provide their paths or names as arguments to the `mix test` command. For example, `mix test test/my_module_test.exs` will run tests only in the specified file.


  1. Output and Reporting: Mix displays the test results in the terminal, showing which tests passed, failed, or were skipped. It also provides information on test coverage if you’ve configured it in your project.


  1. Parallel Testing: By default, ExUnit runs tests in parallel, utilizing multiple CPU cores to speed up the testing process. You can control the parallelism using the `–max-cases` and `–async` flags if needed.


  1. Test Configuration: ExUnit allows you to configure aspects of your tests, such as test timeouts, setup and teardown functions, and more. You can define these configurations in your `config/test.exs` file.


  1. Assertions: ExUnit provides a wide range of built-in assertions for common test scenarios. These assertions help you check the expected outcomes of your code and ensure that it behaves as intended.


  1. Continuous Integration (CI): When setting up a CI/CD pipeline for your project, make sure to include a step for running tests using the `mix test` command. CI systems can automatically execute tests on each code push to ensure code quality.


Running tests in Elixir using ExUnit is a straightforward process. By following naming conventions and writing test cases in your project, you can use the `mix test` command to execute tests, validate your code’s correctness, and ensure that it meets the desired specifications.


Previously at
Flag Argentina
time icon
Tech Lead in Elixir with 3 years' experience. Passionate about Elixir/Phoenix and React Native. Full Stack Engineer, Event Organizer, Systems Analyst, Mobile Developer.