I'm currently implementing Acceptance testing. To give some context to the business, we are an ecommerce solution and we have 35 clients which some clients have a few sites from us. We have a monolithic system and everything can be overridden via various ways. For example, one client may have a subscriptions module or one client may have 5 different types of user.
Should we be within the test, getting the configuration (such as user types available) for the site which is stored in a database via say 'testing helper controller' which could return say language strings and configuration? Or should we pass these through as .yml params? Or should these be hard coded in a config file?
Secondly, for a test which say needs to ran 4 times, once per a different login? Where would this happen? Could we do this within the test via a foreach loop, or is there a better method of doing this?
Thirdly, say we're running tests for a site which may have subscriptions (a module) turned off or on, should we enter each test and then ask the site (via a json file or a curl from the site) to then allow us to skip the test based on the returned value? Or should be make a test runner which would create a list of 'test groups' and run the test groups which are appropriate for that site, say base tests and then add subscriptions as another group to run as its enabled?
The test runner above, we were thinking would also be used to change the URL to point at the different client staging domains also also to be ran once the code has been deploy.
Any advise, we'll be very appreciated!