AgentSkillsCN

julia-tests-write

采用 TestItemRunner.jl 模式为 Julia 软件包编写测试,涵盖 Aqua、JET 以及文档测试等多种形式。在新增或整理测试用例时,这一技能必不可少。

SKILL.md
--- frontmatter
name: julia-tests-write
description: Write tests for Julia packages using TestItemRunner.jl patterns including Aqua, JET, and doctests. Use this skill when adding or organizing tests.

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

TagPurpose
:jetJET static analysis
:aquaAqua code quality
:doctestsDocumentation tests
:cudaCUDA GPU tests
:plottingVisualization tests
:coreCore 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