diff --git a/README.md b/README.md new file mode 100644 index 0000000..15f04e9 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ + +# 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. + + diff --git a/testing/run.nix b/testing/run.nix index 7c214bb..4c2e459 100644 --- a/testing/run.nix +++ b/testing/run.nix @@ -12,5 +12,5 @@ let } ''; in (pkgs.writeShellScriptBin "test" '' - cat '${resFile}' | ${pkgs.jq}/bin/jq '${filter}' | ${pkgs.fx}/bin/fx + cat '${resFile}' | ${pkgs.jq}/bin/jq '${filter}' '')