59 lines
967 B
Markdown
59 lines
967 B
Markdown
|
|
||
|
# Tix
|
||
|
|
||
|
Test your Nix is only ticks.
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
Make a test file:
|
||
|
|
||
|
```mytest.nix
|
||
|
{ it, ... }:
|
||
|
[
|
||
|
(it "can add numbers" {
|
||
|
actual = 2 + 2;
|
||
|
expected = 4;
|
||
|
})
|
||
|
(it "loves big brother" {
|
||
|
actual = 2 + 2;
|
||
|
expected = 5;
|
||
|
})
|
||
|
]
|
||
|
```
|
||
|
|
||
|
Add tix as an input to your flake, and use it to build a test output.
|
||
|
|
||
|
```flake.nix
|
||
|
{
|
||
|
description = "My test driven flake";
|
||
|
|
||
|
inputs = {
|
||
|
tix.url = "git+https://git.tristans.cloud/tristan/tix";
|
||
|
};
|
||
|
|
||
|
outpts = {self, tix, ...}: {
|
||
|
packages.x86_64-linux.test = tix.run [
|
||
|
./mytest.nix
|
||
|
];
|
||
|
};
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Then run the generated package.
|
||
|
|
||
|
```sh
|
||
|
nix run .#test --show-trace
|
||
|
```
|
||
|
|
||
|
Watch for changes while you are developing your package by adding a new output.
|
||
|
|
||
|
```flake.nix
|
||
|
tix.watch "nix run .#test | ${pkgs.fx}/bin/fx" "fx";
|
||
|
```
|
||
|
|
||
|
I am piping the output into `fx` so I can navigate it easier.
|
||
|
|
||
|
`"fx"` is the process name that must be killed before rerunning.
|
||
|
|
||
|
|