I'm using Selenium Webdriver (Java), Eclipse as IDE.
My current setup was
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...)
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:
Is it correct that I included the page objects in the first project (in the framework itself) ? Should it be in the TestProject ?
I did not declare my classes as abstract. What I just did was add the FrameworkProject as a JavaBuildPath to TestProject. Is it correct?
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).João Farias– João Farias2017年01月29日 20:13:01 +00:00Commented Jan 29, 2017 at 20:13
Explore related questions
See similar questions with these tags.