This is a follow up discussion from a presentation I gave at this year's
ApacheCon2008 conference:
http://us.apachecon.com/presentation/materials/118/ApacheCon2008_SeleniumXml.pdf
A few of us have been working on a test framework called SeleniumXml.
It is
an extension of Selenium RC
(http://seleniumhq.org/projects/remote-control/)
that uses XML to run Selenium tests (see the presentation above for more
details). It is currently hosted on Sourceforge (
http://sourceforge.net/projects/seleniumxml/), but we would like to
contribute it back into OFBiz to help develop a common framework for
UI and
functional testing of OFBiz applications.
*The Problem*
All of the SeleniumXml code was intentionally licensed with an Apache 2.0
license to be compatible with ofbiz, but there are some JavaScript files
that are used in the Selenium-core that are LGPL licensed. These files
are
not necessary to compile the SeleniumXml code, but to execute a test you
need to run the Selenium Server which requires the core files.
As we have discussed in this ML, Apache will not host GPL like licensed
files on their servers (including LGPL) which creates a problem for us
contributing the code to OFBiz. Here are a couple solutions to this
problem.
*Proposed Solutions*
1.
Create a custom ant target (e.g. install-selenium-xml) that
downloads the
selenium-server.jar from a non-Apache hosted website (e.g.
SourceForge). For
example, the Apache Velocity project does this with their build
which may be
to work around possible license problems as we have here.
2.
Another possibility is to replace the LGPL JavaScript files with our
own
version and then get the Selenium project to adopt the Apache licensed
version. There isn't a lot of code to change, but it would take an
effort to
test it thoroughly to make sure all the Selenium code still worked
with the
change.
Solution 1 above will be the quickest to implement, but solution 2 may
be a
better long term strategy. Please provide your feedback if you think it
would be sufficient to have "ant" do a download of any non-apache
compliant
libraries. This will keep us in compliance while still making it easy for
the community to get access to the full test framework.
The motivation behind this request is to help the community develop a
functional testing framework that is easy to use by everyone. We believe
Selenium is an excellent platform for UI and functional testing. We also
believe that if the tools are not included with the framework and if they
are difficult to use people will ignore them.
Once we have agreement on how best to add these test tools to OFBiz we
can
start discussing other test topics such as:
-
common test data
-
automated test builds
-
new features
-
methods for data cleaning up after a test
-
how to contribute your test case to the community
-
etc
Thanks in advance for your feedback.
Brett