I built an open source tool for end to end testing Discord bots (python)
So I have been working on a side project called Botwright and figured this community might find it useful.
The short version is it lets you actually test your Discord bot the way a real user would. Instead of just unit testing your functions in isolation, Botwright spins up a separate tester bot account that talks to your bot inside a real Discord guild. It sends real messages, waits for the response, and lets you assert on the actual discord.py message objects that come back.
The reason I made it is that bots tend to break at the boundary stuff, things like intents, permissions, channel routing, embeds, command prefixes, and Discord API timing. Unit tests do not really catch any of that. Botwright runs inside pytest so you keep all the normal stuff you already know, fixtures, parametrize, assertions, reporting. By default it makes a fresh temporary channel per test so things stay isolated, and it cleans up after itself.
A basic test looks about as simple as you would hope. Send "!ping", wait, assert the reply says "pong". That is it.
Where I think it gets interesting for this sub is two things. First, if you are newer to bot dev, having real tests means you can refactor or add commands without that nervous feeling of wondering what you broke. Second, and this is the part I am still exploring, it gives AI coding assistants an actual feedback loop. If the model can run real tests against a live bot, you can hand off a lot more of the grind and let it verify its own work instead of you manually poking at Discord every time.
It is built on discord.py and pytest, MIT licensed, and on PyPI. Repo is here if you want to poke at it: https://github.com/Nya-Foundation/botwright
Still early so feedback, issues, and ideas are very welcome. Curious if anyone here has wished for something like this.