improve test framework
add travis config