Quickstart¶
Install the package¶
Note
You need the Foundry Nuke installed and a valid licence to use this package. Download nuke here.
To use this package you need to install it first from pypi:
pip install git+https://github.com/cglukas/NukeTesting.git@main#egg=nuketesting
Afterwards check the installation by running the nuke-testrunner one:
nuke-testrunner --help
The output should look like this:
Usage: nuke-testrunner [OPTIONS]
Nuke Test Runner CLI Interface.
This bootstraps Nuke within the test runner to be able to run pytest like
usual, with all Nuke dependencies.
`nuke-executable` is the filepath to the nuke executable. If you provided a
"runner.json" configuration, you can also reference the runner by its
configured name.
`test-path` is the folder of file of the tests you want to execute. Use the
pytest folder/file.py::class::method notation to run single tests. For
further options consult the pytest documentation.
If you don't specify the test-path it will use the current directory like
pytest does.
Options:
-n, --nuke-executable PATH Path to the executable of Nuke.
-t, --test-path PATH Directory to test. This defaults to the
current directory and will search for tests
in that folder recursively like pytest does.
-c, --config PATH Specify a json to read as config to use for
the tests.
-r, --runner-name TEXT Only run the runners in the config specified
with this name
--run-in-terminal-mode, --terminal BOOLEAN
Launch a Nuke interpreter to run the tests
in. This defaults to True.
-p, --pytest-arg TEXT Specify an arg to forward to pytest. You can
add as many of these as you want.
--help Show this message and exit.
Run your first test¶
Next step is to run your first test.
Let’s create a simple unit test that checks if a nuke node can be created.
Create a tutorial.py file and add the following content:
import nuke
def test_nuke_creation() -> None:
"""Test that nuke nodes can be created."""
assert nuke.createNode("Blur")
The last step is to check if this test works.
Open up a shell in the directory of tutorial.py and run the following command:
nuke-testrunner --nuke-executable <your_path_to_nuke> --test-path tutorial.py
Nuke will start up and execute the test with pytest. You should see something like this output:
Nuke 15.1v1, 64 bit, built Jun 6 2024.
...
Inserted packages for the NukeTestRunner successfully. Starting tests...
================================ test session starts =================================
platform win32 -- Python 3.10.10, pytest-8.3.3, pluggy-1.5.0
rootdir: C:\Users\Lukas
plugins: anyio-4.4.0, cov-5.0.0, html-4.1.1, metadata-3.1.1
collected 1 item
.\tutorial.py . [100%]
================================= 1 passed in 0.13s ==================================
If everything worked, congratulations! You can now start testing your nuke gizmos, plugins and python packages.
If something did not work, please open an issue in github.