# Other kinds of tests

**URL:** <https://discourse.julialang.org/t/other-kinds-of-tests/124523>\
**Category:** General Usage\
**Tags:** testing\
**Created:** [January 8, 2025, 6:25am UTC](https://discourse.julialang.org/t/other-kinds-of-tests/124523 "2025-01-08T06:25:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![phma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/phma/32/6576_2.png) [@phma](https://discourse.julialang.org/u/phma)\
**Post date:** [January 8, 2025, 6:25am UTC](https://discourse.julialang.org/t/other-kinds-of-tests/124523/1 "2025-01-08T06:25:20Z")

</div>

Pass/fail tests go in `test/runtests.jl`. But there are other kinds of tests.

A cryptographer may want to publish his cryptanalysis code, but users of the crypto library shouldn’t have to depend on the packages used in cryptanalysis (I’ve used Makie to graph cryptanalysis). An author of a network server may want to stress-test it. An author of a number-crunching module may want to run benchmarks.

Where should such tests go?

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [January 8, 2025, 9:13am UTC](https://discourse.julialang.org/t/other-kinds-of-tests/124523/2 "2025-01-08T09:13:54Z")

</div>

> [@phma](#):
>
> but users of the crypto library shouldn’t have to depend on the packages used in cryptanalysis

You’re supposed to use test-specific dependencies anyway. One way is `test/Project.toml`.

---

<div class="post-metadata">

**Author:** ![phma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/phma/32/6576_2.png) [@phma](https://discourse.julialang.org/u/phma)\
**Post date:** [January 9, 2025, 5:33am UTC](https://discourse.julialang.org/t/other-kinds-of-tests/124523/3 "2025-01-09T05:33:48Z")

</div>

But that’s for the tests in `test/runtests.jl`, which are pass/fail tests that generally take only a few seconds. Where do you put the other kinds of tests, which can take hours and can give results like `374 B/s`?

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [January 9, 2025, 7:19am UTC](https://discourse.julialang.org/t/other-kinds-of-tests/124523/4 "2025-01-09T07:19:12Z")

</div>

You could put benchmarks under `benchmark/`, and then also make it a project by creating a `benchmark/Project.toml`, and probably also a `benchmark/Manifest.toml` to prevent the results changing because of dependencies.
