Place-publishing TestService Integration

As a Roblox developer, it is currently impossible to ensure place updates are properly unit-tested before they are published.


Back Story

Integrating TestService-based tests for every feature in my game has become a critical workflow point. It ensures that whatever code changes take place, I always know that the end goal is being met. Otherwise, I have an immediate, helpful warning that changes need to be made.

However, there is no mechanism that forces these tests to take place. As such, it often happens that we forget to run these tests before releasing quick patches. As any aged developer can guarantee you, that can lead to disaster.

Looking outside the platform

SCM platforms like GitHub have long realized this. When instructed to do so, they can prevent the release and propagation of source code that fails continuous integration tests. This means that code that is merged onto the main software has been independently and automatically verified before it is added to the existing codebase.

The result is fewer bugs, easier tracking and debugging of existing issues, and increased confidence when publishing new content and code.

The Fix

Roblox already has a platform for users to create unit tests, TestService, which speeds up the creation of checks and balances on newly-implemented source code. However, it currently lacks any integration with the delivery of updates. If you don’t use it, you could easily mistake it for not being there.

By expanding TestService’s abilities, namely by integrating it with game and place publishing, we could create a safety mechanism that allows developers to ensure they are publishing thoroughly-tested content that is unlikely to break.

Developers should be able to schedule tests to be run whenever they attempt to publish the game, and have these checks inform them if any issues arise.

11 Likes