# Shell tool testing

**URL:** <https://discuss.kakoune.com/t/shell-tool-testing/2902>\
**Category:** Off Topic\
**Created:** [May 15, 2026, 1:34am UTC](https://discuss.kakoune.com/t/shell-tool-testing/2902 "2026-05-15T01:34:34Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Screwtapello](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/screwtapello/32/12_2.png) [@Screwtapello](https://discuss.kakoune.com/u/Screwtapello)\
**Post date:** [May 15, 2026, 1:34am UTC](https://discuss.kakoune.com/t/shell-tool-testing/2902/1 "2026-05-15T01:34:34Z")

</div>

Sometimes when I’m writing a Kakoune plugin, I decide I need an external helper tool for Kakoune to call, and I want to write tests for it. If I write it in Python, I can use the standard library’s `unittest` module, but if I’m writing in shell or AWK or something, the path is not as clear.

I recently discovered a tool called `prove` and used it for testing basic shell interactions (input, output, exit codes, etc.) and I wrote a blog post about what I learned:

[https://zork.net/~st/jottings/shell-tool-testing.html](https://zork.net/~st/jottings/shell-tool-testing.html)

---

<div class="post-metadata">

**Author:** ![strlen](https://discuss.kakoune.com/letter_avatar_proxy/v4/letter/s/53a042/32.png) [@strlen](https://discuss.kakoune.com/u/strlen)\
**Post date:** [May 18, 2026, 1:39am UTC](https://discuss.kakoune.com/t/shell-tool-testing/2902/2 "2026-05-18T01:39:18Z")

</div>

Nice.

also related:

> **[GitHub - darius/tush: Literate testing for command-line programs](https://github.com/darius/tush)**
>
> Literate testing for command-line programs

> **[fhtagn – a tiny CLI programs tester written in AWK](https://maximullaris.com/fhtagn.html)**
>
> Literate testing for command-line programs with fhtagn
