diff --git a/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/run/PyCCRunTestsConfigurationProducer.java b/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/run/PyCCRunTestsConfigurationProducer.java index f58104fb37e2..c61ecd00d982 100644 --- a/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/run/PyCCRunTestsConfigurationProducer.java +++ b/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/run/PyCCRunTestsConfigurationProducer.java @@ -10,6 +10,7 @@ import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; import com.jetbrains.edu.coursecreator.CCUtils; +import com.jetbrains.edu.coursecreator.PyCCLanguageManager; import com.jetbrains.edu.learning.StudyUtils; import com.jetbrains.edu.learning.core.EduNames; import com.jetbrains.edu.learning.courseFormat.Task; @@ -59,7 +60,12 @@ public class PyCCRunTestsConfigurationProducer extends RunConfigurationProducer< if (task == null) { return null; } - return task.getLesson().getName() + "/" + task.getName(); + String generatedName = task.getLesson().getName() + "/" + task.getName(); + if (task.hasSubtasks()) { + int index = task.getActiveSubtaskIndex() + 1; + generatedName += " " + index; + } + return generatedName; } @Nullable @@ -81,7 +87,7 @@ public class PyCCRunTestsConfigurationProducer extends RunConfigurationProducer< if (task == null) { return null; } - String testsFileName = EduNames.TESTS_FILE; + String testsFileName = PyCCLanguageManager.getSubtaskTestsFileName(task.getActiveSubtaskIndex()); String taskDirPath = FileUtil.toSystemDependentName(taskDir.getPath()); String testsPath = taskDir.findChild(EduNames.SRC) != null ? FileUtil.join(taskDirPath, EduNames.SRC, testsFileName) : diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyTestRunner.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyTestRunner.java index f7c64d1099f1..6ae2fa3d338b 100644 --- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyTestRunner.java +++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyTestRunner.java @@ -7,8 +7,10 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.vfs.VirtualFile; import com.jetbrains.edu.learning.checker.StudyTestRunner; +import com.jetbrains.edu.learning.core.EduNames; import com.jetbrains.edu.learning.courseFormat.Course; import com.jetbrains.edu.learning.courseFormat.Task; import com.jetbrains.python.sdk.PythonSdkType; @@ -35,6 +37,11 @@ public class PyStudyTestRunner extends StudyTestRunner { } String testsFileName = manager.getTestFileName(); + if (myTask.hasSubtasks()) { + testsFileName = FileUtil.getNameWithoutExtension(testsFileName); + int index = myTask.getActiveSubtaskIndex() + 1; + testsFileName += EduNames.SUBTASK_MARKER + index + "." + FileUtilRt.getExtension(manager.getTestFileName()); + } final File testRunner = new File(myTaskDir.getPath(), testsFileName); final GeneralCommandLine commandLine = new GeneralCommandLine(); commandLine.withWorkDirectory(myTaskDir.getPath());