testing-framework icon indicating copy to clipboard operation
testing-framework copied to clipboard

AbstractTestSystem::initializeTestDatabase should not truncate tables that contain static data

Open oliverklee opened this issue 7 years ago • 3 comments

I'm currently working on an extension that imports static data using an ext_tables_static+adt.sql file, and that includes a functional repository test that tests that records can be loaded from the corresponding table, and that fields are mapped correctly for the model.

The first time one of those tests is run (when a new test system and a new DB is created), is passes. The second time, it fails because the database is truncated:

    public function setUp(
            // …
    ) {
        $this->registerNtfStreamWrapper();
        $this->setTypo3Context();
        if ($this->recentTestSystemExists()) {
            $this->includeAndStartCoreBootstrap();
            $this->initializeTestDatabase();
            $this->loadExtensionConfiguration();
        } else {
            // …
        }
    protected function initializeTestDatabase()
    {
        $this->bootstrap->initializeTypo3DbGlobal();
        /** @var DatabaseConnection $database */
        $database = $GLOBALS['TYPO3_DB'];
            // …
        foreach ($database->admin_get_tables() as $table) {
            $database->admin_query('TRUNCATE ' . $table['Name'] . ';');
        }
    }

This problem occurs with nimut/testing-framework 2.0.3, but the corresponding code in master does the same things.

May a configuration in the functional test case which tables should be kept would be an approach for this?

oliverklee avatar Nov 14 '18 18:11 oliverklee

For me personally, it's not important whether the table always is empty or filled with the static data. The test run results should be consistent between the first and the subsequent runs, though.

oliverklee avatar Nov 14 '18 20:11 oliverklee

Alternatively the logic to import static data could be executed again after truncating all tables.

mbrodala avatar Nov 22 '18 12:11 mbrodala

Note: https://github.com/TYPO3/testing-framework/ solved this.

lolli42 avatar Jul 17 '22 13:07 lolli42