1

The title may not have been worded correctly but basically here is what I am having trouble researching / figuring out:

What I have:

  • A full set of automated tests written in C# Selenium that tests my application
  • Team City
  • Octopus Deploy
  • A linux box

What I want to achieve:

I want TeamCity to be able to run some type of continuous integration of the Selenium tests I have written every time a branch has been deployed and/or when new changes have been pushed. If possible (if its even needed), I would like this set up to be hosted on this Linux box i have access to so that I do not have to keep running my automated tests on my machine every time.

Right now our devs have set up in TeamCity a section that runs their own unit tests every time code is pushed. I am not very familiar with TeamCity and I have tried looking at their documentation to see if I could somehow have an independent deployment section just for automated tests that somehow tries to capture branches pushes or code pushes linked to a particular section.

Any suggestions or solutions to implement something like this? I am NOT bound by only using TeamCity, it is just what is available for me to use.

2

2 Answers 2

1

I haven't used TeamCity (I use Jenkins) but this sounds like a pretty straightforward and common use case for any CI (Continuous Integration) system. Start by learning the basics of TeamCity. Some terminology that might be helpful in your research (note that these are Jenkins terms and may differ slightly for TeamCity):

  • It sounds like you want to configure a job to build/run your automated tests, and to set up a build trigger for when a change is pushed in your source control system.

  • Your build actions would likely include a script with whatever commands you would normally type to run your tests. There may also be specific plugins or add-ons specific to Selenium but I do know plugins are a big Jenkins thing; they may be less common with TeamCity.

  • Finally, I imagine your TeamCity instance is already running on its own server. To use your Linux box to run the tests, you want to configure it as a slave or build executor or build agent and then configure your job to run on that slave/executor/agent.

1

Why did you write those automated tests? Do your developers have interest in information your script collects? if yes - great! ask them for help to set the things up. If not, that I would start with the question: are your automated scripts delivering any value?

I used Jenkins as well and this was my way of kicking off:

  1. create automated scripts
  2. push into git repository
  3. clone job, which run unit tests on dev machine
  4. replace unit test git link with my automated script link
  5. change job trigger e.g. every day on 12 a.m.
  6. start to experiment and learn how it all works

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.