-
Notifications
You must be signed in to change notification settings - Fork 10
Creating Hyperskill problems
On Hyperskill, testing with the hs-test
library is used when testing stages of projects. However, it is possible to use this library to write standalone problems for various topics in the knowledge map. The specifics of creating such problems will be described below.
We'll continue from the end of the JVM languages initial setup page.
If you want to create a problem for a non-JVM language, you can start from non-JVM languages initial setup page.
There are several key differences between projects on Hyperskill and problems on Hyperskill using the hs-test
library:
- In the projects the initial template is only present in the first stage, while in the problems the initial template is present in every stage. This is because in projects, the user's solution moves from stage to stage, whereas problems can be solved by the user in any order and are actually independent of each other.
- In projects, only tests are hidden and all solution files must be visible to the user. In problems, part of the solution can be hidden and the user will only see a visible part of the solution to make changes in it. For a problem that can be solved in the Hyperskill web interface, it must have only one visible file (but it may contain more than one visible file, in this case it can be solved only in IDE).
You can create several problems in within a EduTools project.
Spring Boot problem, that can be solved both in the web interface and in the IDE. Don't be confused with Tests.java
with gradle logo being shown in the root of the stage - it's actually build.gradle
file on the disk, it's UI bug in EduTools plugin - EDU-4801. You can see that the first problem has only one visible file named src/task/SimpleController.java
(it has black text color), while others are hidden (they have gray text color). You can find out how to set some files visible/invisible in the initial setup page.
Key observations:
- Try to leave only 1 visible file, so that users will be able to solve the problem in the web interface.
- Try to leave all the necessary imports in place so that users won't struggle with them since they don't have code completion when they try to solve the problem in the web interface. But at the same time, don't hint the exact solution by showing exact imports. For example, in Java you can use star imports so that the user wouldn't be spoiled the solution and at the same time wouldn't have to type imports.
- You don't have to edit
task.html
in EduTools, it's better to edit it on Stepik. But be aware that you shouldn't edit problem description on Stepik while you edit tests in EduTools - you will end up erasing either description on Stepik or tests in EduTools. After you made some edits on Stepik, you need to redownload the lesson in EduTools or copy HTML description in Stepik and paste it totask.html
in the same step in IDE.
If you want to write tests for the Spring Boot problem, use Testing Spring Boot instruction and Checking JSON instruction.
- Home
- About
- Initial setup
- Writing tests
- Guidelines for writing tests
- Outcomes of testing
- Generating and checking
- Presentation error
- Checking JSON
- Testing solutions written in different languages
- Creating Hyperskill problems based on hs-test
- Testing Java Swing applications
- Testing Java Spring applications
- Testing Ktor applications