Basic test utils to make testing Vapor apps a little simpler.


Swift Vapor Swift Package Manager License


VaporTestUtils is available through Swift Package Manager. To install, simply add the following line to the dependencies in your Package.swift file.

let package = Package(
    name: "YourProject",
    dependencies: [
        .package(url: "", from: "1.0.0"),
    targets: [
      .testTarget(name: "YourApp", dependencies: ["VaporTestUtils", ... ])


Check the app included in this project for a complete example. Here are some of the basics:

1. Import the library

import VaporTestUtils

2. Setup your test case

Create a test case inheriting from VaporTestCase. Override computed properties booter and configurer and return the corresponding boot and configure functions from your app. Then, just start executing requests. Pretty simple stuff.

final class ExampleAppTests: VaporTestCase {

	static var allTests = [
		("testLinuxTestSuiteIncludesAllTests", testLinuxTestSuiteIncludesAllTests),
		("testMyApp", testMyApp)

	func testLinuxTestSuiteIncludesAllTests(){
		assertLinuxTestCoverage(tests: type(of: self).allTests)

	override var booter: AppBooter{
		return ExampleApp.boot
	override var configurer: AppConfigurer{
		return ExampleApp.configure
	override func setUp() {
		loggingLevel = .debug //This is optional. Logs all requests and responses to the console.

	func testMyApp() throws {
		let response = try executeRequest(method: .GET, path: "testing-vapor-apps")
		XCTAssert(response.has(statusCode: .ok))
		XCTAssert(response.has(content: "is super easy"))


Some extension methods were blatantly borrowed from LiveUI's VaporTestTools. You should also check their library out as it serves a similar purpose (and might be even better).


We would love you to contribute to VaporTestUtils, check the CONTRIBUTING file for more info.


VaporTestUtils is available under the MIT license. See the LICENSE file for more info.


  • Swift Tools 5.3.0
View More Packages from this Author


Last updated: Sun Jan 14 2024 15:46:53 GMT-1000 (Hawaii-Aleutian Standard Time)