diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/AbstractImportTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/AbstractImportTest.java
index 80d287959a6742bc39cd20db8cb6aa8598882e1e..a74fd17fe3085d9718e6ec5835dad2d5e307fb32 100644
--- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/AbstractImportTest.java
+++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/AbstractImportTest.java
@@ -22,25 +22,41 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.BeforeSuite;
 
 public class AbstractImportTest extends AbstractTest
 {
 
-    private static final String VERSIONING_JSON = "./versioning.json";
+    private static final String VERSIONING_JSON = "targets/xls-import-version-info-test.json";
 
     private static final String XLS_VERSIONING_DIR = "xls-import.version-data-file";
 
+    protected String sessionToken;
+
     @BeforeSuite
     public void setupSuite()
     {
         System.setProperty(XLS_VERSIONING_DIR, VERSIONING_JSON);
     }
 
+    @BeforeMethod
+    public void beforeTest()
+    {
+        sessionToken = v3api.login(TEST_USER, PASSWORD);
+    }
+
     @AfterMethod
     public void afterTest()
     {
-        new File(VERSIONING_JSON).delete();
+        final File file = new File(VERSIONING_JSON);
+
+        System.out.println("Versioning file: " + file.getAbsolutePath());
+        System.out.println("Versioning file exists: " + file.exists());
+
+        file.delete();
+
+        v3api.logout(sessionToken);
     }
 
     protected static byte[] getFileContent(final String fileName)
diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UncompressedImportTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UncompressedImportTest.java
index 278bf1ac735659b91d56644688fc92ea565cd3d2..b6cfb0aa6388c2473b62451140fa639dd691882c 100644
--- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UncompressedImportTest.java
+++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UncompressedImportTest.java
@@ -51,8 +51,6 @@ public class UncompressedImportTest extends AbstractImportTest
     @Test
     public void testDataImport()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final IImportData importData = new UncompressedImportData(ImportFormat.XLS, getFileContent("import.xlsx"), null);
         final ImportOptions importOptions = new ImportOptions(ImportMode.UPDATE_IF_EXISTS);
 
@@ -72,15 +70,11 @@ public class UncompressedImportTest extends AbstractImportTest
         final List<VocabularyTerm> vocabularyTerms = vocabularySearchResult.getObjects().get(0).getTerms();
         assertEquals(vocabularyTerms.size(), 2);
         assertEquals(vocabularyTerms.stream().map(VocabularyTerm::getCode).collect(Collectors.toSet()), Set.of("HRP", "AAA"));
-
-        v3api.logout(sessionToken);
     }
 
     @Test
     public void testImportOptionsUpdateIfExists()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final IImportData importData = new UncompressedImportData(ImportFormat.XLS, getFileContent("existing_vocabulary.xlsx"), null);
         final ImportOptions importOptions = new ImportOptions(ImportMode.UPDATE_IF_EXISTS);
 
@@ -99,20 +93,15 @@ public class UncompressedImportTest extends AbstractImportTest
         assertEquals(vocabularySearchResult.getObjects().get(0).getDescription(), "Test vocabulary with modifications");
 
         final List<VocabularyTerm> vocabularyTerms = vocabularySearchResult.getObjects().get(0).getTerms();
-        assertEquals(vocabularyTerms.size(), 3);
         assertEquals(vocabularyTerms.stream().map(VocabularyTerm::getCode).collect(Collectors.toSet()),
                 Set.of("TEST_TERM_A", "TEST_TERM_B", "TEST_TERM_C"));
         assertEquals(vocabularyTerms.stream().map(VocabularyTerm::getLabel).collect(Collectors.toSet()),
                 Set.of("Test term A", "Test term B", "Test term C"));
-
-        v3api.logout(sessionToken);
     }
 
     @Test
     public void testImportOptionsIgnoreExisting()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final IImportData importData = new UncompressedImportData(ImportFormat.XLS, getFileContent("existing_vocabulary.xlsx"), null);
         final ImportOptions importOptions = new ImportOptions(ImportMode.IGNORE_EXISTING);
 
@@ -131,37 +120,24 @@ public class UncompressedImportTest extends AbstractImportTest
         assertEquals(vocabularySearchResult.getObjects().get(0).getDescription(), "Test vocabulary");
 
         final List<VocabularyTerm> vocabularyTerms = vocabularySearchResult.getObjects().get(0).getTerms();
-        assertEquals(vocabularyTerms.size(), 3);
         assertEquals(vocabularyTerms.stream().map(VocabularyTerm::getCode).collect(Collectors.toSet()),
                 Set.of("TEST_TERM_A", "TEST_TERM_B", "TEST_TERM_C"));
         final List<String> descriptions = vocabularyTerms.stream().map(VocabularyTerm::getLabel).collect(Collectors.toList());
         assertTrue(descriptions.containsAll(Arrays.asList(null, null, "Test term C")));
-
-        v3api.logout(sessionToken);
     }
 
     @Test(expectedExceptions = UserFailureException.class, expectedExceptionsMessageRegExp = ".*FAIL_IF_EXISTS.*")
     public void testImportOptionsFailIfExists()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final IImportData importData = new UncompressedImportData(ImportFormat.XLS, getFileContent("existing_vocabulary.xlsx"), null);
         final ImportOptions importOptions = new ImportOptions(ImportMode.FAIL_IF_EXISTS);
 
-        try
-        {
-            v3api.executeImport(sessionToken, importData, importOptions);
-        } finally
-        {
-            v3api.logout(sessionToken);
-        }
+        v3api.executeImport(sessionToken, importData, importOptions);
     }
 
     @Test
     public void testWithValidationScript()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final String name = "valid.py";
         final String source = "print 'Test validation script'";
         final IImportData importData = new UncompressedImportData(ImportFormat.XLS, getFileContent("validation_script.xls"),
@@ -187,15 +163,11 @@ public class UncompressedImportTest extends AbstractImportTest
 
         assertEquals(validationPlugin.getName(), sampleType.getCode() + "." + validationPluginBareName);
         assertEquals(validationPlugin.getScript(), source);
-
-        v3api.logout(sessionToken);
     }
 
     @Test
     public void testWithDynamicScript()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final String name = "dynamic.py";
         final String source = "1+1";
         final IImportData importData = new UncompressedImportData(ImportFormat.XLS, getFileContent("dynamic_script.xls"),
@@ -226,8 +198,6 @@ public class UncompressedImportTest extends AbstractImportTest
 
         assertEquals(plugin.getName(), propertyAssignment.getPropertyType().getCode() + "." + pluginBareName);
         assertEquals(plugin.getScript(), source);
-
-        v3api.logout(sessionToken);
     }
 
 }
diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/ZipImportTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/ZipImportTest.java
index f8938b68926624b267cf11b8d7895bb976d669f1..fffaea8376889ec7b1ad96eec0481cda884289f9 100644
--- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/ZipImportTest.java
+++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/ZipImportTest.java
@@ -50,8 +50,6 @@ public class ZipImportTest extends AbstractImportTest
     @Test
     public void testDataImport()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final IImportData importData = new ZipImportData(ImportFormat.XLS, getFileContent("import.zip"));
         final ImportOptions importOptions = new ImportOptions(ImportMode.UPDATE_IF_EXISTS);
 
@@ -69,17 +67,12 @@ public class ZipImportTest extends AbstractImportTest
         assertEquals(vocabularySearchResult.getTotalCount(), 1);
 
         final List<VocabularyTerm> vocabularyTerms = vocabularySearchResult.getObjects().get(0).getTerms();
-        assertEquals(vocabularyTerms.size(), 2);
         assertEquals(vocabularyTerms.stream().map(VocabularyTerm::getCode).collect(Collectors.toSet()), Set.of("HRP", "AAA"));
-
-        v3api.logout(sessionToken);
     }
 
     @Test
     public void testImportOptionsUpdateIfExists()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final IImportData importData = new ZipImportData(ImportFormat.XLS, getFileContent("existing_vocabulary.zip"));
         final ImportOptions importOptions = new ImportOptions(ImportMode.UPDATE_IF_EXISTS);
 
@@ -98,20 +91,15 @@ public class ZipImportTest extends AbstractImportTest
         assertEquals(vocabularySearchResult.getObjects().get(0).getDescription(), "Test vocabulary with modifications");
 
         final List<VocabularyTerm> vocabularyTerms = vocabularySearchResult.getObjects().get(0).getTerms();
-        assertEquals(vocabularyTerms.size(), 3);
         assertEquals(vocabularyTerms.stream().map(VocabularyTerm::getCode).collect(Collectors.toSet()),
                 Set.of("TEST_TERM_A", "TEST_TERM_B", "TEST_TERM_C"));
         assertEquals(vocabularyTerms.stream().map(VocabularyTerm::getLabel).collect(Collectors.toSet()),
                 Set.of("Test term A", "Test term B", "Test term C"));
-
-        v3api.logout(sessionToken);
     }
 
     @Test
     public void testImportOptionsIgnoreExisting()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final IImportData importData = new ZipImportData(ImportFormat.XLS, getFileContent("existing_vocabulary.zip"));
         final ImportOptions importOptions = new ImportOptions(ImportMode.IGNORE_EXISTING);
 
@@ -130,37 +118,24 @@ public class ZipImportTest extends AbstractImportTest
         assertEquals(vocabularySearchResult.getObjects().get(0).getDescription(), "Test vocabulary");
 
         final List<VocabularyTerm> vocabularyTerms = vocabularySearchResult.getObjects().get(0).getTerms();
-        assertEquals(vocabularyTerms.size(), 3);
         assertEquals(vocabularyTerms.stream().map(VocabularyTerm::getCode).collect(Collectors.toSet()),
                 Set.of("TEST_TERM_A", "TEST_TERM_B", "TEST_TERM_C"));
         final List<String> descriptions = vocabularyTerms.stream().map(VocabularyTerm::getLabel).collect(Collectors.toList());
         assertTrue(descriptions.containsAll(Arrays.asList(null, null, "Test term C")));
-
-        v3api.logout(sessionToken);
     }
 
     @Test(expectedExceptions = UserFailureException.class, expectedExceptionsMessageRegExp = ".*FAIL_IF_EXISTS.*")
     public void testImportOptionsFailIfExists()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final IImportData importData = new ZipImportData(ImportFormat.XLS, getFileContent("existing_vocabulary.zip"));
         final ImportOptions importOptions = new ImportOptions(ImportMode.FAIL_IF_EXISTS);
 
-        try
-        {
-            v3api.executeImport(sessionToken, importData, importOptions);
-        } finally
-        {
-            v3api.logout(sessionToken);
-        }
+        v3api.executeImport(sessionToken, importData, importOptions);
     }
 
     @Test
     public void testWithValidationScript()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final String name = "valid.py";
         final String source = "print 'Test validation script'";
         final IImportData importData = new ZipImportData(ImportFormat.XLS, getFileContent("validation_script.zip"));
@@ -185,15 +160,11 @@ public class ZipImportTest extends AbstractImportTest
 
         assertEquals(validationPlugin.getName(), sampleType.getCode() + "." + validationPluginBareName);
         assertEquals(validationPlugin.getScript().trim(), source);
-
-        v3api.logout(sessionToken);
     }
 
     @Test
     public void testWithDynamicScript()
     {
-        final String sessionToken = v3api.login(TEST_USER, PASSWORD);
-
         final String name = "dynamic.py";
         final String source = "1+1";
         final IImportData importData = new ZipImportData(ImportFormat.XLS, getFileContent("dynamic_script.zip"));
@@ -223,8 +194,6 @@ public class ZipImportTest extends AbstractImportTest
 
         assertEquals(plugin.getName(), propertyAssignment.getPropertyType().getCode() + "." + pluginBareName);
         assertEquals(plugin.getScript().trim(), source);
-
-        v3api.logout(sessionToken);
     }
 
 }