|
|||||
|
|||||
Home
Tynamo is model-driven, full-stack web framework based on Tapestry 5. Tynamo's mission is to make web application development in Java simpler. We leverage existing technologies where possible and provide integrations with proven, clean and compact libraries rather than limit ourselves only to standard Java (JSRs). Tynamo is both comprehensive and modular so you are free to choose the parts you like from our full stack. And finally, we like Tapestry and our modules use Tapestry IoC extensively.
The most well-known web integration testing suite around is probably Selenium, but I must say that I'm more and more happy with HtmlUnit-based tests only. Why? The big difference is that I can run all of my HtmlUnit-based tests within my IDE without extra configuration and they run an order of magnitude faster than the multi-process Selenium tests. Another major benefit is that I can directly access the embedded database and Tapestry registry and do everything within a single JVM, which is extremely useful for setting up the test fixtures and the system state before the test and then cleaning up everything afterwards. Finally, maintainability is way better. While it may take longer to write the first HtmlUnit test than recoding a Selenium test, writing the next ones and maintaining the test suite as your applications evolves is far, far easier. JMHO of course. I just finished writing the following test for integration
testing a referral system: I start up the embedded Jetty, write
a new Referral entity to the database, browse the site as a
(guest) user as if he was referred by the Referral, sign up via
an Ajax control, receive an email sent by the system, verify
the new user activation by clicking on the url in the email,
fill in the user details and finally verify that the referral
is credited for by doing a database query. It covers a
lot of ground, but it's all executed in less than 8
seconds on my development laptop. All together 24 lines of
code, most of it used for setting up the test fixtures. Now,
PHP guys, let me see you do that! (Sorry that was unfair, but
ah, it felt good
For those interested in the details, the big three libraries in play are Jetty, Hibernate and Tapestry (naturally). I'm also using a version of Tynamo's own AbstractContainerTest, Dumbster and H2 (don't I love that database!). Selenium makes a lot of sense if you really are executing the tests against multiple browsers and your tests are mostly focused on browser compatibility. From what I've seen though, most of the time people are using Selenium with a single web driver and they are simply using it for integration testing the application workflow. HtmlUnit's browser doesn't seem to have any problem parsing the webpages I feed to it or executing the Javascript embedded on them, so in practice if my HtmlUnit-based integration test fails, I can be pretty sure the same doesn't work on any "real" browser either. As an Apache Shiro committer and a strong proponent of
Tapestry, I'm proud to announce the 0.2.0 release of
tapestry-security module, which represents the best and most
comprehensive security framework integration for Tapestry 5
applications. I can say that since it's largely written by
others
We've just released a maintainance release of tapestry-jpa. It consists of small patches and enhancements:
You can find the new release in the maven repositories. They say that a release a week keeps the doctor away so to combat any potential illnesses in advance, we are announcing tapestry-resteasy 0.2.0 and tapestry-model 0.0.2 releases! Tapestry-resteasy is whiz-bang job of Alejandro Scandroli and this release fixes everything that could have been improved from the previous release, namely:
Read more at tapestry-resteasy guide (the guide is updated!) tapestry-model 0.0.2 is a bug-fix release:
Read more at tapestry-model guide Just to keep up with releasing something new every month, we are announcing tapestry-watchdog, version 0.0.1! This module got released sometime ago but as a multi-process application that most of the time doesn't do much but needs to deliver when the time comes, we took a bit longer to test it out. tapestry-watchdog is an "embedded watchdog" that sends an email to you right away if something happens to your parent process (we've all seen an OutOfMemoryError right?) Configuring tapestry-watchdog couldn't be any simpler, but read more about it from our tapestry-watchdog guide. Another month, another release. This time we bring you a Tapestry-style replacement for this standard web.xml configuration:
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/generalError.jsp</location>
</error-page>
Tapestry conveniently wraps up any uncaught exception inside ComponentEventException and displays a very nice exception page at development time, but unfortunately that makes it impossible to use the standard error-page configuration in your web.xml. Not that configuring all that in verbose xml is that great anyway but it had its uses. tapestry-exceptionpage allows you to simply contribute the exception type/error page mappings in plain Java and allows specifing context for the error pages to make it quite a bit more flexible than the standard configuration. Check out the tapestry-exceptionpage guide for more info! I've been sitting on some improvements to conversations for some time. Since I'm already using that functionality on our live conversations example and I even got myself to document the features, I figured it's time to push out a new release, version 0.1.1 of tapestry-conversations! Here's what's changed: Improvement
New Feature
Task
As always, the release is available from central and the documentation is updated to explain the new functionality. Enjoy! Hey party people! We just released tapestry-hibernate-seedentity with the following changes: Improvement
Task
The release is available from central and the documentation is updated to explain the new functionality. Enjoy! |
|||||
|
Copyright 2003-2006 - The Codehaus. All rights reserved unless otherwise noted.
Powered by Atlassian Confluence
|
|||||