본문으로 건너뛰기
cccskills
무료GitHub에 공개

running-julia-test

Use when you run tests

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.7 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Running Julia tests

Running all tests with Pkg.test()

Before running tests for a new package, make sure the test environment is already set up. If the package does not have tests yet, follow creating-julia-test-env first. Tests that use using Test must have Test available from the package or test project.

To run all of your package's tests, use the following command:

$ julia --project -e 'using Pkg; Pkg.test()'

Running specific test sets only

To run only particular test sets (for example, those defined as @testset "label" begin ... end), use the ~/.julia/bin/testrunner tool.

If testrunner is already installed, this command prints its path:

$ command -v testrunner

If you do not have the testrunner command, install it with:

$ julia -e 'using Pkg; Pkg.activate(); Pkg.Apps.add(url="https://github.com/aviatesk/TestRunner.jl")'

Basic Usage

$ testrunner demo.jl "basic tests"                   # Run the testset named "basic tests"

$ testrunner demo.jl "basic tests" "struct tests"    # Run multiple named testsets

$ testrunner demo.jl '(:(@test startswith(inner_func2(), "inner")))'  # Run a standalone test case

See the guide to learn more.

Caveat: There are cases where name or regex filters do not work as expected

Sometimes, even after specifying a testset name or a regex, all tests may run instead of just the intended ones (this seems to be due to a pattern matching behavior in TestRunner.jl). Example:

# Expected: Only "calculate: basic operations" should run (4 tests), but actually all 20 tests run
$ testrunner --project=. test/runtests.jl "calculate: basic operations"
$ testrunner --project=. test/runtests.jl 'r"^calculate: basic operations$"'
$ testrunner --project=. test/runtests.jl L6:11   # Even if you include the @testset declaration line, all tests are executed

As a workaround, specify the line range including only the @test lines (do not include the @testset ... begin declaration line). This way, you can ensure that only the intended testset is executed:

# In the case where the target @test lines are in lines 7-10 of runtests.jl
$ testrunner --project=. test/runtests.jl L7:10

Always confirm whether your filter worked as intended by checking the Total count in the Test Summary or the n_passed field in the --json output.

Keeping sessions warm with WarmTestRunner.jl

WarmTestRunner.jl is a test runner that accelerates local test iterations while developing Julia packages.

Whereas standard Pkg.test() runs your tests in a fresh Julia process every time, WarmTestRunner.jl reuses a daemon process and a pool of warm workers, spreading the loading and compilation cost across multiple test runs.

As a general guideline, use it as follows:

  • For everyday edit/test cycles: using WarmTestRunner; runtests()
  • For final checks before merges, releases, or CI-style runs: Pkg.test()

To install WarmTestRunner.jl:

$ julia -e 'using Pkg; Pkg.activate(); Pkg.develop(url="https://github.com/terasakisatoshi/WarmTestRunner.jl")'

Basic Usage

$ cd path/to/target/package
$ julia --project -e 'using WarmTestRunner; runtests()'

To run testsets in parallel, start the WarmTestRunner daemon with multiple jobs in one terminal, then run tests with split_testsets = true from another terminal:

# Terminal 1
$ cd path/to/target/package
$ julia --project -e 'using WarmTestRunner; serve(jobs=4)'

# Terminal 2
$ cd path/to/target/package
$ julia --project -e 'using WarmTestRunner; runtests(split_testsets = true)'

This splits testsets and executes them across the warm worker pool.

When runtests() starts the daemon automatically, a daemon process runs in the background. To manually stop any WarmTestRunner daemon, run the following:

$ cd path/to/target/package
$ julia --project -e 'using WarmTestRunner; stop()'

If you run Pkg.build() for the target package, stop the daemon (stop()) first and rerun runtests() afterwards.

This is especially important when developing a Julia package with a C interface. In that workflow, Pkg.build() is often used to rebuild or replace a shared library, and WarmTestRunner workers may still have the old shared library loaded. Stop the daemon before rebuilding so the next test run starts from fresh workers:

$ cd path/to/target/package
$ julia --project -e 'using WarmTestRunner; stop()'
$ julia --project -e 'using Pkg; Pkg.build()'
$ julia --project -e 'using WarmTestRunner; runtests()'
# update files in ./src or ./test/
$ julia --project -e 'using WarmTestRunner; runtests()'
# update files in ./src or ./test/ ... repeat the cycle

Caveat: When the workspace structure changes, run stop() first

The daemon caches the path and contents of Project.toml into its worker pool at startup, so runtests() may fail to start with an error after any of the following workspace structure changes:

  • Deleting or regenerating Project.toml / Manifest.toml
  • Moving or renaming the package directory
  • Editing the [workspace] / [deps] / [sources] sections
  • Removing files the worker is still referencing from outside the daemon

Example errors (recorded in the controller log ~/.julia/warmtestrunner/logs/controller-*.err.log):

nested task error: ".../path/to/Project.toml": No such file
ERROR: timed out waiting for server record for ...

The recovery procedure is the same as for Pkg.build(): first stop(), then run runtests() again:

$ julia --project -e 'using WarmTestRunner; stop()'
$ julia --project -e 'using WarmTestRunner; runtests()'

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use AtomLane to compile and execute safe atomic parallel plans on macOS and native Windows Preview for worthwhile independent argv tasks, dependency DAGs, supported platform entrypoints, or Apple-silicon operators. Use at task start or an execution boundary when structured local work may contain two or more worthwhile units; skip plain answers, one quick command, and work whose effects cannot be safely bounded.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashgraph-online/awesome-codex-plugins1.4천2026년 10월 22일 업데이트

add

무료

Register a deferred decision in the debt registry. Trigger by judgment, not a marker scan, whenever a future reader would ask "why this way?": an unmade decision, stub, loosened type, bypassed check, swallowed error, a default picked "for now", or a TODO/FIXME/HACK/XXX marker. Trigger immediately whenever you defer work, or when the user invokes $add. Over-register freely; the developer drops with "drop A", "drop A,C", or "drop all".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashgraph-online/awesome-codex-plugins1.4천2026년 10월 22일 업데이트

ADK 框架适配层。为 LangChain / EINO / AutoGen / AgentScope / CrewAI 提供框架特定的 代码模板、惯用模式、API 映射和项目结构,供 agent-dev-workshop Phase 5 代码生成使用。 每个框架 reference 文件标注 verified_date 用于版本锁定。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashgraph-online/awesome-codex-plugins1.4천2026년 10월 22일 업데이트

中文调试修复技能。用于报错、测试失败、页面异常、功能不符合预期、需要定位根因并做最小修复时。触发语包括"进入调试模式""帮我修问题""报错了""测试失败""页面坏了""找根因"。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashgraph-online/awesome-codex-plugins1.4천2026년 10월 22일 업데이트

交互式 AI Agent 开发工作坊:通过 6 阶段深度协作对话,引导用户完成 Agent 需求分析、架构设计、 工具定义、Prompt 与编排设计、代码生成、验证迭代,产出可直接运行的 Agent 项目。 框架无关设计优先,支持 LangChain / EINO / AutoGen / AgentScope / CrewAI 等 ADK 框架。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashgraph-online/awesome-codex-plugins1.4천2026년 10월 22일 업데이트

中文漂移审计技能。用于项目或学习过程变乱、上下文漂移、任务分叉、多个方案冲突、命名不一致、Codex 可能顺手改多了时。触发语包括"漂移检查""感觉跑偏了""项目变乱了""检查是否失控""分叉太多""上下文漂移"。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashgraph-online/awesome-codex-plugins1.4천2026년 10월 22일 업데이트

hashgraph-online의 스킬 모두 보기

이 스킬의 문제 신고