When developing extensions for Business Central you have a wide array of publishing options to choose from.
My most used options when working on the ForNAV Customizable Report Pack are our Sandbox and Docker.
Testing is best on the Sanxbox for two reasons. First because all the Azure Active Directory stuff actually returns something which is useful for licensing scenario’s. Second because you can easily share the result with the team since everyone is on the same Sandbox.
Docker is useful when you don’t want to test on current but on an older or vNext instance.
Lastly it’s also possible to install Business Central on your own infrastructure altough this is a dying species.
In your Visual Studio Code project you can specify how you want to publish in the launch.json file but did you also know you can setup miltiple configurations and then choose one at the time of publishing.
This is how it could look:
{ "version": "0.2.0", "configurations": [ { "type": "al", "request": "launch", "name": "Docker", "authentication": "UserPassword", "startupObjectType": "Page", "breakOnError": true, "launchBrowser": true, "server": "http://bcsandbox", "serverInstance": "NAV", "enableLongRunningSqlStatements": true, "enableSqlInformationDebugger": true, "schemaUpdateMode": "Synchronize" }, { "type": "al", "request": "launch", "name": "Microsoft cloud sandbox", "startupObjectId": 6188475, "startupObjectType": "Page", "breakOnError": true, "launchBrowser": true, "enableLongRunningSqlStatements": true, "enableSqlInformationDebugger": true, "schemaUpdateMode": "Synchronize" } ] }
Now if you publish your code Visual Studio Code will ask for the correct configuration.

NOTE: Your credentials cache is shared accross these configurations. You will need to clear the credentials cache if you switch.
TIP: You can also use this to create a seperate config for Syncronize and Recreate.