Join GitHub today
merge in LiipFunctionalTestBundle #24
i wasnt quite happy with the way this Bundle was born, the fork was unnecessary if there would have been some patience to collaborate. anyway, today LiipFunctionalTestBundle has quite a user base but development is quite slow. ICBaseTestBundle provides several very useful additional features. as i dont really see much use in 2 bundles in this area, i am willing to deprecate LiipFunctionalTestBundle in favor of this Bundle.
that being said I suspect especially in regards to fixture loading there might be some useful things that are only available in LiipFunctionalTestBundle. maybe a few other things here and there. not sure if anyone is using the html5 validation service integration, so i am willing to loose that along the way.
what do you think?
@lsmith77 By no means this bundle was created with the purpose of becoming a competitor with LiipFunctionalTestBundle. Quite the opposite. We started using he bundle and some portions of our codebase are still using,
But here we are today and right now we're spending more and more efforts on this bundle. We spent a couple of days detailing how to test individual pieces from Unit and Functional perspective. We're expanding what we originally have defined to accommodate not only what we wrote an year ago, but also more and more granular helpers to keep testing simpler.
Based on that, we'd be more than happy to include whatever feature you consider missing. We're still playing with a "new" version to deal with Unit testing, and as soon as it gets finished, we'll enter on Functional testing perspective.
Let's keep this conversation going, I'm interested on feature we could bring to simplify everyone's life.
I am not sure if sqlite:memory is so important. There is an open PR for LiipFunctionalTestBundle liip/LiipFunctionalTestBundle#85 which will fully automate the resetting of the cached sqlite DBs. Obviously in memory could be faster than on disc, but at least this would ensure that caching can be used without any annoyances.
I do not have a perfect overview of the features of this Bundle, nor do I really know all the features of LiipFunctionalTestBundle in detail, but a rough overview of LiipFunctionalTestBundle would be:
I'll add feedback to each one point...
We partially fixed this issue by holding an MD5 of your sorted Fixture list. We create a cache for each combination, which prevents some of this from happening in some cases. We're still unable to fix the issue where your Fixture list remains the same and you only include new entries. That still requires a cache clear, or a sqlite:memory to be configured.
The problem that we face affects our entire infrastructure. We rely on ESIs a lot for individual components. A page is built of multiple sub-requests. Symfony sends a new request for each one of them and since the DB is configured to use sqlite:memory, it would create a new instance of DB for the sub-request which would be always blank, then failing the tests.
We already support the execution of commands through a Helper.
We didn't see a need to have multiple kernels being loaded on a single test, but we identified the need to switch the Kernel for a given test. We rely on Symfony's default support for that:
We haven't included any support for ODM so far. After Doctrine's refactoring on Fixtures, it would be a simple execution for this. Please refer to new branches of Fixtures and its own Bundle:
We support 2 levels of caching for SQLite DB.
This is also supported through a Helper.
We haven't identified any need for this so far. Easy to be included.
This is a very interesting feature that I'm really interested to bring in. We have our SLAs that are not being monitored in an automated fashion and that would be a great solution for this problem.
Thank you for the detailed response.
A few short comments:
At any rate, since I am short on time I will likely not have time to do an in depth analysis here but it sounds to me like what is missing is pretty small and can likely be added if needed. So I might just announced that LiipFunctionalTestBundle is deprecated. However ODM support is quite critical for us, so this is something that we would urgently need to see added.