diff --git a/src/main/resources/db/test/V3.1__insert_virtual_corpus.sql b/src/main/resources/db/test/V3.1__insert_virtual_corpus.sql
index 6c22329..8c54862 100644
--- a/src/main/resources/db/test/V3.1__insert_virtual_corpus.sql
+++ b/src/main/resources/db/test/V3.1__insert_virtual_corpus.sql
@@ -61,10 +61,10 @@
 
 		
 -- virtual corpora
-INSERT INTO query(name, type, query_type, required_access, created_by, description, status, koral_query) 
-	VALUES ("dory-vc", "PRIVATE", "VIRTUAL_CORPUS", "FREE", "dory", "test vc", "experimental",
-	'{"collection": { "@type": "koral:docGroup", "operands": [ { "@type": "koral:doc", "key": "corpusSigle", "match": "match:eq", "value": "GOE" }, { "@type": "koral:doc", "key": "creationDate", "match": "match:geq", "type": "type:date", "value": "1820" } ], "operation": "operation:and" }}');
-	
+--INSERT INTO query(name, type, query_type, required_access, created_by, description, status, koral_query) 
+--	VALUES ("dory-vc", "PRIVATE", "VIRTUAL_CORPUS", "FREE", "dory", "test vc", "experimental",
+--	'{"collection": { "@type": "koral:docGroup", "operands": [ { "@type": "koral:doc", "key": "corpusSigle", "match": "match:eq", "value": "GOE" }, { "@type": "koral:doc", "key": "creationDate", "match": "match:geq", "type": "type:date", "value": "1820" } ], "operation": "operation:and" }}');
+
 INSERT INTO query(name, type, query_type, required_access, created_by, description, status, koral_query) 
 	VALUES ("group-vc", "PROJECT", "VIRTUAL_CORPUS", "PUB", "dory", "test vc", "experimental",
 	'{"collection": { "@type": "koral:docGroup", "operands": [ { "@type": "koral:doc", "key": "corpusSigle", "match": "match:eq", "value": "GOE" }, { "@type": "koral:doc", "key": "creationDate", "match": "match:leq", "type": "type:date", "value": "1810" } ], "operation": "operation:and" }}');
diff --git a/src/test/java/de/ids_mannheim/korap/dao/VirtualCorpusDaoTest.java b/src/test/java/de/ids_mannheim/korap/dao/VirtualCorpusDaoTest.java
index 9deb763..8445a20 100644
--- a/src/test/java/de/ids_mannheim/korap/dao/VirtualCorpusDaoTest.java
+++ b/src/test/java/de/ids_mannheim/korap/dao/VirtualCorpusDaoTest.java
@@ -25,13 +25,17 @@
 
     @Test
     public void testListVCByType () throws KustvaktException {
+    	createDoryVC();
+    	
         List<QueryDO> vcList = dao.retrieveQueryByType(ResourceType.PUBLISHED,
                 null, QueryType.VIRTUAL_CORPUS);
         assertEquals(1, vcList.size());
         QueryDO vc = vcList.get(0);
-        assertEquals(3, vc.getId());
+        assertEquals(2, vc.getId());
         assertEquals("published-vc", vc.getName());
         assertEquals("marlin", vc.getCreatedBy());
+        
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     @Test
@@ -87,14 +91,18 @@
      */
     @Test
     public void retrieveVCByUserDory () throws KustvaktException {
+    	createDoryVC();
+    	
         List<QueryDO> virtualCorpora = dao.retrieveQueryByUser("dory",
                 QueryType.VIRTUAL_CORPUS);
         assertEquals(3, virtualCorpora.size());
         // ordered by id
         Iterator<QueryDO> i = virtualCorpora.iterator();
-        assertEquals("dory-vc", i.next().getName());
         assertEquals("group-vc", i.next().getName());
         assertEquals("system-vc", i.next().getName());
+        assertEquals("dory-vc", i.next().getName());
+        
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     /**
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/VirtualCorpusReferenceRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/VirtualCorpusReferenceRewriteTest.java
index b813c31..c5ae661 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/VirtualCorpusReferenceRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/VirtualCorpusReferenceRewriteTest.java
@@ -22,12 +22,13 @@
 import de.ids_mannheim.korap.init.NamedVCLoader;
 import de.ids_mannheim.korap.util.QueryException;
 import de.ids_mannheim.korap.utils.JsonUtils;
+import de.ids_mannheim.korap.web.controller.vc.VirtualCorpusTestBase;
 import jakarta.ws.rs.core.Response;
 
 /**
  * @author margaretha
  */
-public class VirtualCorpusReferenceRewriteTest extends SpringJerseyTest {
+public class VirtualCorpusReferenceRewriteTest extends VirtualCorpusTestBase {
 
     @Autowired
     private NamedVCLoader vcLoader;
@@ -101,7 +102,6 @@
 //        assertEquals("match:eq", node.at("/operands/1/match").asText());
 //        assertEquals("corpusSigle", node.at("/operands/1/key").asText());
 //        
-        System.out.println(node.toPrettyString());
         node = node.at("/rewrites/0");
         assertEquals("operation:override", node.at("/operation").asText());
         assertEquals("koral:docGroupRef", node.at("/original/@type").asText());
@@ -151,6 +151,8 @@
     @Test
     public void testRewriteWithDoryVCRef ()
             throws KustvaktException, IOException, QueryException {
+    	createDoryVC();
+    	
         Response response = target().path(API_VERSION).path("search")
                 .queryParam("q", "Fisch").queryParam("ql", "poliqarp")
                 .queryParam("cq", "referTo \"dory/dory-vc\"").request()
@@ -173,5 +175,6 @@
         assertEquals("koral:docGroupRef", node.at("/original/@type").asText());
         assertEquals("dory/dory-vc", node.at("/original/ref").asText());
         
+        deleteVC("dory-vc", "dory", "dory");
     }
 }
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2AccessTokenTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2AccessTokenTest.java
index d537584..5158b46 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2AccessTokenTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2AccessTokenTest.java
@@ -18,10 +18,11 @@
 import de.ids_mannheim.korap.exceptions.StatusCodes;
 import de.ids_mannheim.korap.utils.JsonUtils;
 import de.ids_mannheim.korap.web.controller.usergroup.UserGroupTestBase;
+import de.ids_mannheim.korap.web.controller.vc.VirtualCorpusTestBase;
 import jakarta.ws.rs.core.Response;
 import jakarta.ws.rs.core.Response.Status;
 
-public class OAuth2AccessTokenTest extends UserGroupTestBase {
+public class OAuth2AccessTokenTest extends VirtualCorpusTestBase {
 
     private String userAuthHeader;
 
@@ -61,6 +62,8 @@
 
     @Test
     public void testCustomScope () throws KustvaktException {
+    	createDoryVC();
+    	
         Response response = requestAuthorizationCode("code",
                 confidentialClientId, "", OAuth2Scope.VC_INFO.toString(), "",
                 userAuthHeader);
@@ -84,6 +87,8 @@
                 ACCESS_TOKEN_TYPE);
         revokeToken(refreshToken, confidentialClientId, clientSecret,
                 REFRESH_TOKEN_TYPE);
+        
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     @Test
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java
index 5517c75..c3b9994 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java
@@ -16,11 +16,12 @@
 import de.ids_mannheim.korap.query.serialize.MetaQueryBuilder;
 import de.ids_mannheim.korap.query.serialize.QuerySerializer;
 import de.ids_mannheim.korap.utils.JsonUtils;
+import de.ids_mannheim.korap.web.controller.vc.VirtualCorpusTestBase;
 import jakarta.ws.rs.client.Entity;
 import jakarta.ws.rs.core.Response;
 import jakarta.ws.rs.core.Response.Status;
 
-public class SearchPublicMetadataTest extends SpringJerseyTest {
+public class SearchPublicMetadataTest extends VirtualCorpusTestBase {
 
     @Test
     public void testSearchPublicMetadata () throws KustvaktException {
@@ -138,6 +139,7 @@
     @Test
     public void testSearchPublicMetadataWithPrivateVC ()
             throws KustvaktException {
+    	createDoryVC();
         Response response = target().path(API_VERSION).path("search")
                 .queryParam("q", "Sonne").queryParam("ql", "poliqarp")
                 .queryParam("cq", "referTo \"dory/dory-vc\"")
@@ -147,5 +149,6 @@
         assertEquals(StatusCodes.AUTHORIZATION_FAILED,
                 node.at("/errors/0/0").asInt());
         assertEquals(node.at("/errors/0/2").asText(), "guest");
+        deleteVC("dory-vc", "dory", "dory");
     }
 }
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerTest.java
index fad276a..9f53164 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerTest.java
@@ -42,10 +42,12 @@
 
     @Test
     public void testDeleteVC_unauthorized () throws KustvaktException {
+    	createDoryVC();
         Response response = target().path(API_VERSION).path("vc").path("~dory")
                 .path("dory-vc").request()
                 .header(Attributes.AUTHORIZATION, authHeader).delete();
         testResponseUnauthorized(response, testUser);
+        deleteVC("dory-vc", "dory", "dory");
     }
     
     private void testDeleteSystemVC (String vcName) throws KustvaktException {
@@ -405,6 +407,7 @@
 
     @Test
     public void testEditVC () throws KustvaktException {
+    	createDoryVC();
         // 1st edit
         String json = "{\"description\": \"edited vc\"}";
         editVC("dory", "dory", "dory-vc", json);
@@ -417,6 +420,7 @@
         // check VC
         node = retrieveVCInfo("dory", "dory", "dory-vc");
         assertEquals(node.at("/description").asText(), "test vc");
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     @Test
@@ -438,6 +442,7 @@
     @Test
     public void testEditCorpusQuery ()
             throws ProcessingException, KustvaktException {
+    	createDoryVC();
         JsonNode node = testRetrieveKoralQuery("dory", "dory-vc");
         assertEquals(node.at("/collection/@type").asText(), "koral:docGroup");
         assertEquals(node.at("/collection/operation").asText(),
@@ -463,6 +468,8 @@
         assertEquals(node.at("/collection/operands/1/key").asText(),
                 "creationDate");
         assertEquals(node.at("/collection/operands/1/value").asText(), "1820");
+        
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     private JsonNode testRetrieveKoralQuery (String username, String vcName)
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusInfoTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusInfoTest.java
index 552026f..94f4129 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusInfoTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusInfoTest.java
@@ -4,7 +4,6 @@
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.junit.jupiter.api.Test;
-import org.mozilla.javascript.Node;
 
 import com.fasterxml.jackson.databind.JsonNode;
 
@@ -57,23 +56,27 @@
     @Test
     public void testRetrievePrivateVC ()
             throws KustvaktException {
+    	createDoryVC();
         JsonNode node = retrieveVCInfo("dory", "dory", "dory-vc");
         assertEquals(node.at("/name").asText(), "dory-vc");
         assertEquals(ResourceType.PRIVATE.displayName(),
                 node.at("/type").asText());
         
         testStatistics(node);
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     @Test
     public void testRetrievePrivateVC_unauthorized ()
             throws KustvaktException {
+    	createDoryVC();
         Response response = target().path(API_VERSION).path("vc").path("~dory")
                 .path("dory-vc").request()
                 .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
                         .createBasicAuthorizationHeaderValue(testUser, "pass"))
                 .get();
         testResponseUnauthorized(response, testUser);
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     @Test
@@ -124,6 +127,7 @@
     @Test
     public void testRetrievePrivateVC_admin ()
             throws KustvaktException {
+    	createDoryVC();
         Response response = target().path(API_VERSION).path("vc").path("~dory")
                 .path("dory-vc").request()
                 .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
@@ -132,8 +136,8 @@
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
         String entity = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(entity);
-        assertEquals(1, node.at("/id").asInt());
         assertEquals(node.at("/name").asText(), "dory-vc");
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     @Test
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusListTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusListTest.java
index c3191f7..1effbc1 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusListTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusListTest.java
@@ -61,10 +61,12 @@
     @Test
     public void testListVCDory ()
             throws ProcessingException, KustvaktException {
+    	createDoryVC();
         JsonNode node = testListOwnerVC("dory");
         assertEquals(2, node.size());
         node = listVC("dory");
         assertEquals(3, node.size());
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     @Test
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusPublishedTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusPublishedTest.java
index a732de5..09ab24c 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusPublishedTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusPublishedTest.java
@@ -95,7 +95,8 @@
     
     @Test
     public void testMarlinPublishedVC () throws KustvaktException {
-        
+        createDoryVC();
+    	
         JsonNode node = testListOwnerVC("marlin");
         assertEquals(2, node.size());
         node = listVC("marlin");
@@ -123,6 +124,7 @@
         assertEquals(0, node.size());
         
         deleteGroupByName(marlinGroupName, "marlin");
+        deleteVC("dory-vc", "dory", "dory");
     }
     
     private String testSharePublishedVC (String vcName) throws KustvaktException {
@@ -187,7 +189,7 @@
         
         // check VC type
         node = testListOwnerVC("dory");
-        JsonNode n = node.get(1);
+        JsonNode n = node.get(0);
         assertEquals(ResourceType.PUBLISHED.displayName(),
                 n.get("type").asText());
         
@@ -205,7 +207,7 @@
         editVC("dory", "dory", vcName, json);
         node = testListOwnerVC("dory");
         assertEquals(ResourceType.PROJECT.displayName(),
-                node.get(1).get("type").asText());
+                node.get(0).get("type").asText());
         
         testHiddenGroupNotFound(hiddenGroupName);
     }
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusReferenceTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusReferenceTest.java
index ad0ba98..4dc67e7 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusReferenceTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusReferenceTest.java
@@ -161,6 +161,7 @@
 
     @Test
     public void testRefNotAuthorized () throws KustvaktException {
+    	createDoryVC();
         Response response = target().path(API_VERSION).path("search")
                 .queryParam("q", "[orth=der]").queryParam("ql", "poliqarp")
                 .queryParam("cq", "referTo \"dory/dory-vc\"").request().get();
@@ -169,6 +170,7 @@
         assertEquals(StatusCodes.AUTHORIZATION_FAILED,
                 node.at("/errors/0/0").asInt());
         assertEquals(node.at("/errors/0/2").asText(), "guest");
+        deleteVC("dory-vc", "dory", "dory");
     }
 
     @Test
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusTestBase.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusTestBase.java
index 5826a62..27fecab 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusTestBase.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusTestBase.java
@@ -55,6 +55,18 @@
     	createVC(authHeader, "nemo", "nemo-vc", vcJson);
     };
     
+	protected void createDoryVC () throws KustvaktException {
+		String authHeader = HttpAuthorizationHandler
+				.createBasicAuthorizationHeaderValue("dory", "pass");
+
+		String vcJson = "{\"type\": \"PRIVATE\""
+				+ ",\"queryType\": \"VIRTUAL_CORPUS\""
+				+ ",\"status\":\"experimental\""
+				+ ",\"corpusQuery\": \"corpusSigle=GOE AND creationDate since "
+				+ "1820\"}";
+		createVC(authHeader, "dory", "dory-vc", vcJson);
+	};
+    
     
     protected void createVC (String authHeader, String username, String vcName,
             String vcJson) throws KustvaktException {
diff --git a/src/test/resources/kustvakt-icc.conf b/src/test/resources/kustvakt-icc.conf
index 9714955..9e851c9 100644
--- a/src/test/resources/kustvakt-icc.conf
+++ b/src/test/resources/kustvakt-icc.conf
@@ -6,7 +6,7 @@
 krill.index.commit.auto = 500
 krill.index.relations.max = 100
 # Directory path of virtual corpora to cache
-#krill.namedVC = vc
+krill.namedVC = vc
 krill.test = true
 
 # LDAP
