I'm using Selenium Webdriver (Java), Eclipse as IDE.

My current setup was

  1. I have one Java project in Eclipse that serves as the framework (say FrameworkProject). The project is comprised of these packages,

    • testdata - holds testdata.java. This returns random test data for my tests like passwords, names etc...
    • utility - this package holds the object repository configuration class. This also contains the ExcelConfiguration class.
    • pageObjects - this package holds the page object class of the current system under test (e.g Login.class, Register.class etc...)
  2. And the other java project was the TestProject. This only contains one package named tests. Under package tests, it has TestCase.class that serves as the testcase class, executes steps (I'm using page-object model by the way)

Now, my questions are:

  1. Is it correct that I included the page objects in the first project (in the framework itself) ? Should it be in the TestProject ?

  2. I did not declare my classes as abstract. What I just did was add the FrameworkProject as a JavaBuildPath to TestProject. Is it correct?

  3. Lastly, how about if there's another project? Should I continue this kind of setup? Create another java project for the new project then add the framework as the javabuildpath?

I am still new to this stuff. Every answer is much appreciated.

1 Answer 1


After trying a few project setup, we decided to put the automation in with the project being tested.

So if you are testing website abc, you have your automation in that project. the page objects too.

The more general things shared across projects (e.g. a database connector program) are in their own project

The benefit there is that your automation version is tied to your program version .

Say you need to roll back your product, or have version 5 in QA, and version 4 on prod, and decide to roll back to version 3 in prod, and then forward to 5, and want to use the automation version that is matched to that.

if you have your automations in the same project as what you are testing the versions

If you do not expect that to be an issue, the only way I would do it is put your page objects in with your test project, since those are highly dependent and really seem unlikely to be shared accross projects (i.e. other projects will have separate page objects)

  • In addition, we have to remember that everything depends on context. Who will be building the automation framework and the tests; who will execute these tests; for how long will this project go on. Besides what @Dan spoke, I would remove the direct setup dependency of setting the framework in the javapath. The framework and the SUT should be handled by the package manager (Gradle, Ant... etc). Jan 29, 2017 at 20:13

Your Answer

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

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