diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java index 707153af9c9c..69a8a38a7901 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java @@ -340,11 +340,14 @@ public abstract class StateStorageManagerImpl implements StateStorageManager, Di expanded = StringUtil.replace(expanded, macro, myMacros.get(macro)); } - final Matcher matcher = MACRO_PATTERN.matcher(expanded); - while (matcher.find()) { - String m = matcher.group(1); - if (m != null && !myMacros.containsKey(m) && (!ApplicationManager.getApplication().isUnitTestMode() || !m.contains("\\com.jetbrains.php."))) { - throw new IllegalArgumentException("Unknown macro: " + m + " in storage file spec: " + file); + // PHP tests use $ as part of name and resulting project name will contain macros-like string + if (!ApplicationManager.getApplication().isUnitTestMode()) { + final Matcher matcher = MACRO_PATTERN.matcher(expanded); + while (matcher.find()) { + String m = matcher.group(1); + if (m != null && !myMacros.containsKey(m)) { + throw new IllegalArgumentException("Unknown macro: " + m + " in storage file spec: " + file); + } } }