sklearn cross_validate without test/train split
Its the first case - there are 3 test_scores since the default setup is 3-fold cross validation.
Which means that the training set is split into 3 subsets and at each cross validation step the model is trained on 2 subsets and tested on the one subset left out.

Its all in the docs