vapor-docs/testing/modules.md

1.1 KiB
Raw Blame History

currentMenu
testing-modules

Using Multiple Modules For Testing

Testing a Vapor app gets tricky, and requires some maneuvering of your app targets.

Step 1: Update Package.swift

To start, you need to split up your Vapor project into a target called App, and a target called AppLogic. The App module will only include a main.swift, and your AppLogic will contain the actual logic for the app.

import PackageDescription

let package = Package(
    name: ProjectName,
    targets: [
        Target(name: "App", dependencies: ["AppLogic"])
    ],
    dependencies: [
        .Package(url: "https://github.com/vapor/vapor.git", majorVersion: 1, minor: 3)
    ],
    exclude: [
        "Config",
        "Database",
        "Localization",
        "Public",
        "Resources"
    ]
)

Step 2: Update Tests Folder

Make sure that your tests folder has a file called LinuxMain.swift and a folder called AppLogicTests. In your AppLogicTests, you can add your testing files like UserTests.swift.

As always, make sure that you regenerate with vapor xcode -y