Silverstripe Version: 4.3
Question: How can I fix this error when running tests on the CLI?
I’ve written some tests for my module but when I try to run them using;
vendor/bin/phphunit path/to/tests
I get the following error;
Fatal error: Uncaught Error: Maximum function nesting level of '256' reached, aborting! in /var/www/html/vendor/silverstripe/framework/src/Core/Config/ConfigLoader.php on line 48
Looking at the stack trace I see the following method calls repeated many many times;
72.2130 26508672 14. SilverStripe\ORM\Connect\TempDatabase->resetDBSchema() /var/www/html/vendor/silverstripe/framework/src/ORM/Connect/TempDatabase.php:192
72.8446 26555552 15. SilverStripe\ORM\Connect\TempDatabase->build() /var/www/html/vendor/silverstripe/framework/src/ORM/Connect/TempDatabase.php:288
My test file looks like this;
use SilverStripe\Security\Member;
use SilverStripe\Dev\FunctionalTest;
class LoginControllerTest extends FunctionalTest {
protected static $fixture_file = 'members.yml';
/**
* Test login controller
*/
public function testLoginCorrectCredentials() {
//correct
$member1 = $this->objFromFixture('Member', 'test1');
$member1->write();
$result = $this->postToLogin('{"email":"test@test.test", "pwd":"password"}');
$this->assertEquals(200, $result->getStatusCode());
}
function postToLogin($body = ""){
return $this->post('user/login', null, null, null, $body);
}
}
and my fixture file is like this;
Member:
test1:
FirstName: Test
Email: test@test.test
Password: password
MemberType: customer
retailer-test:
FirstName: Test
Email: retailer@test.test
Password: password
MemberType: Retailer
Purchase:
purchase1:
Date: 2018-12-13
Price: 27.50
purchase2:
Date: 2018-12-14
Price: 500.57
MemberID: 2