# How to run subset of tests?

**URL:** <https://discourse.julialang.org/t/how-to-run-subset-of-tests/102531>\
**Category:** General Usage\
**Tags:** testing\
**Created:** [August 6, 2023, 9:38am UTC](https://discourse.julialang.org/t/how-to-run-subset-of-tests/102531 "2023-08-06T09:38:48Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![greatpet](https://avatars.discourse-cdn.com/v4/letter/g/e495f1/32.png) [@greatpet](https://discourse.julialang.org/u/greatpet)\
**Post date:** [August 6, 2023, 9:38am UTC](https://discourse.julialang.org/t/how-to-run-subset-of-tests/102531/1 "2023-08-06T09:38:48Z")

</div>

Does `Pkg.test` support running only some test sets? I’d like to add a time-consuming testset to my code but don’t want to execute it every time.

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [August 6, 2023, 4:01pm UTC](https://discourse.julialang.org/t/how-to-run-subset-of-tests/102531/2 "2023-08-06T16:01:47Z")

</div>

You might be interested in

- [GitHub - JuliaTesting/ReTest.jl: Testing framework for Julia](https://github.com/JuliaTesting/ReTest.jl)
- [GitHub - julia-vscode/TestItemRunner.jl: Run Julia test items](https://github.com/julia-vscode/TestItemRunner.jl) if you’re in vscode

---

<div class="post-metadata">

**Author:** ![cstjean](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cstjean/32/1444_2.png) [@cstjean](https://discourse.julialang.org/u/cstjean)\
**Post date:** [August 6, 2023, 7:04pm UTC](https://discourse.julialang.org/t/how-to-run-subset-of-tests/102531/3 "2023-08-06T19:04:45Z")

</div>

The traditional “solution” is to split tests into multiple files (test/A.jl). Then at the REPL you can `include` what you want to test. It’s unsatisfying for a myriad reasons, but still it’s usually good enough for us.

---

<div class="post-metadata">

**Author:** ![jar1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jar1](https://discourse.julialang.org/u/jar1)\
**Post date:** [August 6, 2023, 7:08pm UTC](https://discourse.julialang.org/t/how-to-run-subset-of-tests/102531/4 "2023-08-06T19:08:31Z")

</div>

TestItemRunner.jl doesn’t rely on VSCode does it?

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [August 6, 2023, 9:13pm UTC](https://discourse.julialang.org/t/how-to-run-subset-of-tests/102531/5 "2023-08-06T21:13:28Z")

</div>

I have actually never tried it outside but it’s meant to be part of the VSCode Julia extension, or at least it interfaces very well with it.

---

<div class="post-metadata">

**Author:** ![jar1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jar1](https://discourse.julialang.org/u/jar1)\
**Post date:** [August 6, 2023, 9:22pm UTC](https://discourse.julialang.org/t/how-to-run-subset-of-tests/102531/6 "2023-08-06T21:22:59Z")

</div>

Looks like it exports a [`@run_package_tests` macro](https://github.com/julia-vscode/TestItemRunner.jl#running-tests) for running it in other environments.

It can filter on tags like this

```julia
@run_package_tests filter=ti->!(:skipci in ti.tags)

```

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [August 6, 2023, 9:24pm UTC](https://discourse.julialang.org/t/how-to-run-subset-of-tests/102531/7 "2023-08-06T21:24:23Z")

</div>

This package I believe is the most used besides TestItems.jl if you are not using VSCode: [ReTest.jl · ReTest.jl](https://juliatesting.github.io/ReTest.jl/stable/)
