Writing Julia Tests
Write tests for Julia packages using TestItemRunner.jl with support for tagging, code quality checks, and static analysis.
Project Structure
code
MyPackage.jl/ ├── test/ │ ├── Project.toml # Test dependencies │ ├── runtests.jl # Test runner with filtering │ ├── test_core.jl # Core functionality tests │ ├── test_aqua.jl # Code quality checks │ └── test_jet.jl # Static analysis
Basic Test Item
julia
@testitem "Core functionality" begin
using MyPackage
@test myfunction(1) == expected_value
@test_throws ArgumentError myfunction(-1)
end
Tagged Test Item
julia
@testitem "Advanced feature" tags=[:advanced] begin
using MyPackage
@test advanced_function() works
end
Common Tags
| Tag | Purpose |
|---|---|
:jet | JET static analysis |
:aqua | Aqua code quality |
:doctests | Documentation tests |
:cuda | CUDA GPU tests |
:plotting | Visualization tests |
:core | Core functionality |
Standard Test Files
Aqua Tests (test/test_aqua.jl)
julia
@testitem "Aqua" tags=[:aqua] begin
using Aqua
using MyPackage
Aqua.test_all(MyPackage;
ambiguities=false, # Optional: skip ambiguity checks
)
end
JET Tests (test/test_jet.jl)
julia
@testitem "JET" tags=[:jet] begin
using JET
using MyPackage
@test_opt target_modules=[MyPackage] myfunction(1)
@test_call target_modules=[MyPackage] myfunction(1)
end
Reference
- •Standard Tests - Aqua, JET, doctests templates
- •Tools - ReferenceTests, LocalCoverage, Test module
Related Skills
- •
julia-tests-run- Running tests - •
julia-doctests- Doctest configuration