Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation request: .NET 6 example using both specflow.actions.json & appsettings.json #2737

Open
1 of 4 tasks
A-Rai-col opened this issue Feb 6, 2024 · 2 comments
Open
1 of 4 tasks

Comments

@A-Rai-col
Copy link

A-Rai-col commented Feb 6, 2024

Product:

  • SpecFlow
  • SpecFlow+ Runner
  • SpecFlow+ LivingDoc
  • SpecMap

What is missing: As a new SpecFlow adventurer 👶🏴‍☠️ , could some brave soul please show me how to setup a .NET 6 + SpecFlow+Selenium using both appsettings.<environment>.json and specflow.actions.<browser>.json, this would probably fit right at home here in the collection. Most of the examples cover one or the other but I think an example using both is missing.

Request Specifics:

Project type:

  • SpecFlow project template
  • Selenium
  • Framework .NET 6.0
  • Test Framework: NUnit (any)

Here's a bunch of dummy info to put in the files themselves, unfortunately I don't know what is the best way in setting it up.

Multiple (at least 2) environments. appsettings.<environment>.json

appsettings.debug.json

{
    "AppUrl": "http://localhost:4200/"
}

appsettings.release.json

{
    "AppUrl": "http://actualurl.omg"
}

Multiple browser specific configuration.specflow.actions.<browser>.json

specflow.actions.firefox.json
It only seems to work with double dash arguments although Firefox arguments are single dashed?

{
    "selenium": {
        "browser": "firefox",
        "arguments": [
            "--private"
        ]
    }
}

specflow.actions.chrome.json

{
    "selenium": {
        "browser": "chrome",
        "arguments": [
            "--start-maximized",
            "--incognito"
        ]
    }
}

specflow.actions.json

{
  "selenium": {
    "defaultTimeout": 60,
    "pollingInterval": 5
  }
}
@grajesh690
Copy link

grajesh690 commented Mar 12, 2024

What I used to do is,

In app settings I used name as,

appsettings.Env.json and have a seperate .runsettings file, that includes, Env details, Browser etc.

so on execution, my command line will be,

dotnet test -s test.runsettings -- TestRunParameters.Parameter(name="Env", value="QA") TestRunParameters.Parameter(name="Browser", value="Chrome")

So my code will pick the appropriate appsettings based on the command given in the terminal.

@A-Rai-col
Copy link
Author

Thanks for the tip however, I was looking for a solution using specflow.actions because as far as I understand about it, it will run all the browsers along with their respective specific configurations without having to perform additional actions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants