I was giving this a try today with some mixed results. First of all,
running pytest locally would fail with an "ccmlib.common.ArgumentError:
Unknown log level NOTSET" error for each test. Although I created a new
virtualenv for that as described in the readme (thanks for updating!)
and use both of your dtest and cassandra branches. But I haven't patched
ccm as described in the ticket, maybe that's why? Can you publish a
patched ccm branch to gh?

The updated circle.yml is now using docker, which seems to be a good
idea to reduce clutter in the yaml file and gives us more control over
the test environment. Can you add the Dockerfile to the .circleci
directory as well? I couldn't find it when I was trying to solve the
pytest error mentioned above.

Next thing I did was to push your trunk_circle branch to my gh repo to
start a circleCI run. Finishing all dtests in 15 minutes sounds
exciting, but requires a paid tier plan to get that kind of
parallelization. Looks like the dtests have even been deliberately
disabled for non-paid accounts, so I couldn't test this any further.

Running dtests from the pytest branch on builds.apache.org did not work
either. At least the run_dtests.py arguments will need to be updated in
cassandra-builds. We currently only use a single cassandra-dtest.sh
script for all builds. Maybe we should create a new job template that
would use an updated script with the wip-pytest dtest branch, to make
this work and testable in parallel.



On 21.12.2017 11:13, Michael Kjellman wrote:
> I just created https://issues.apache.org/jira/browse/CASSANDRA-14134 which 
> includes tons of details (and a patch available for review) with my efforts 
> to migrate dtests from nosetest to pytest (which ultimately ended up also 
> including porting the ode from python 2.7 to python 3).
> 
> I'd love if people could pitch in in any way to help get this reviewed and 
> committed so we can reduce the natural drift that will occur with a huge 
> patch like this against the changes going into master. I apologize for 
> sending this so close to the holidays, but I really have been working 
> non-stop trying to get things into a completed and stable state.
> 
> The latest CircleCI runs I did took roughly 15 minutes to run all the dtests 
> with only 6 failures remaining (when run with vnodes) and 12 failures 
> remaining (when run without vnodes). For comparison the last ASF Jenkins 
> Dtest job to successfully complete took nearly 10 hours (9:51) and we had 36 
> test failures. Of note, while I was working on this and trying to determine a 
> baseline for the existing tests I found that the ASF Jenkins jobs were 
> incorrectly configured due to a typo. The no-vnodes job is actually running 
> with vnodes (meaning the no-vnodes job is identical to the with-vnodes ASF 
> Jenkins job). There are some bootstrap tests that will 100% reliably hang 
> both nosetest and pytest on test cleanup, however this test only runs in the 
> no-vnodes configuration. I've debugged and fixed a lot of these cases across 
> many test cases over the past few weeks and I no longer know of any tests 
> that can hang CI.
> 
> Thanks and I'm optimistic about making testing great for the project and most 
> importantly for the OSS C* community!
> 
> best,
> kjellman
> 
> Some highlights that I quickly thought of (in no particular order): {also 
> included in the JIRA}
> -Migrate dtests from executing using the nosetest framework to pytest
> -Port the entire code base from Python 2.7 to Python 3.6
> -Update run_dtests.py to work with pytest
> -Add --dtest-print-tests-only option to run_dtests.py to get easily parsable 
> list of all available collected tests
> -Update README.md for executing the dtests with pytest
> -Add new debugging tips section to README.md to help with some basics of 
> debugging python3 and pytest
> -Migrate all existing Enviornment Variable usage as a means to control dtest 
> operation modes to argparse command line options with documented help on each 
> toggles intended usage
> -Migration of old unitTest and nose based test structure to modern pytest 
> fixture approach
> -Automatic detection of physical system resources to automatically determine 
> if @pytest.mark.resource_intensive annotated tests should be collected and 
> run on the system where they are being executed
> -new pytest fixture replacements for @since and @pytest.mark.upgrade_test 
> annotations
> -Migration to python logging framework
> -Upgrade thrift bindings to latest version with full python3 compatibility
> -Remove deprecated cql and pycassa dependencies and migrate any remaining 
> tests to fully remove those dependencies
> -Fixed dozens of tests that would hang the pytest framework forever when run 
> in CI enviornments
> -Ran code nearly 300 times in CircleCI during the migration and to find, 
> identify, and fix any tests capable of hanging CI
> -Upgrade Tests do not yet run in CI and still need additional migration work 
> (although all upgrade test classes compile successfully)
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
For additional commands, e-mail: dev-h...@cassandra.apache.org

Reply via email to