TIP: Please make sure to read Getting started with programming tasks first.

You can start with our sample project that can be found on GitHub:

Open sample project.

Download sample project.

Technical details for Go with Glide support

We use Glide to to manage dependencies.

You project will be built with the following commands:

glide update
go test $(go list ./... | grep -v /vendor/) -v -timeout 1m

Note: Your code pack must contain a glide.yaml  file. Unit tests executed during the build might be used to perform an automatic evaluation of candidate's answer

Automatic assessment

It is possible to automatically assess solution posted by the candidate. Automatic assessment is based on Unit Tests results and Code Quality measurements.

All unit tests that are executed during the build will be detected by the DevSKiller platform.

There are two kinds of unit tests:

  1. Candidate tests - unit tests that are visible for the candidate during the test. Should be used to do only the basic verification and help the candidate to understand the requirements. Candidate tests WILL NOT be used to calculate the final score.
  2. Verification tests - unit tests that are hidden from the candidate during the test. Files containing verification tests will be added to the project after the candidate finishes the test and will be executed during verification phase. Verification tests result will be used to calculate the final score.

After candidate finishes the test, our platform builds the project posted by the candidate and executes verification tests and static code analysis.

Devskiller project descriptor

Programming tasks can be configured with the Devskiller project descriptor file:

  1. Create a devskiller.json file.
  2. Place it in the root directory of your project.

Here is an example project descriptor:

{
  "verification" : {
    "testNamePatterns" : [".*_Assessment"],
    "pathPatterns" : ["**verify_pack/**"]
  }
}

You can find more details about the devskiller.json descriptor in our documentation.

Automatic verification with verification tests

The solution submitted by the candidate may be verified using automated tests. You’ll just have to define which tests should be treated as verification tests.

All files classified as verification tests will be removed from the project prior to inviting the candidate.

To define verification tests, you need to set two configuration properties in devskiller.json:

  • testNamePatterns  - an array of RegEx patterns which should match all the names of the verification tests.
  • pathPatterns  - an array of GLOB patterns which should match all the files containing verification tests. All the files that match defined patterns will be deleted from candidates' projects and will be added to the projects during the verification phase. These files will not be visible to the candidate during the test.

In our sample task all verifications tests are located in verify_pack/*_test.go files and their names end with _Assessment. In this case the following patterns will be sufficient:

"testNamePatterns" : [".*_Assessment"],
"pathPatterns" : ["**verify_pack/**"]
Did this answer your question?