PlatformIO Community

PIO account requirement for `test` task?

I’ve just set up unity tests and I can’t quite understand why do I have to register PIO account.

I wish to run tests within self-hosted GitLab CI and I’m not sure if I want to log in each CI to set up these credentials. Maybe I’ve missed some docs section.

Sample session (on new workstation):

% platformio test -e native          
PioPlusPackageManager: Installing tool-pioplus @ >=0.6.6,<2            
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
tool-pioplus @ 0.6.10 has been successfully installed!
PioPlusPackageManager: Installing pysite-pioplus @ >=0.3.0,<2
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
pysite-pioplus @ 0.3.0 has been successfully installed!
PlatformIO Plus (https://pioplus.com) v0.6.10
You are not logged in. Please log in to PIO Account using
`pio account login` command and try again.

If you don't have PIO Account yet, please create it using
`pio account register` command. The registration is free.

Details: http://docs.platformio.org/page/userguide/account/index.html

% pio account login
PlatformIO Plus (https://pioplus.com) v0.6.10
E-Mail: redacted@gmail.com
Password: 
Successfully authorized!

% platformio test -e native
PlatformIO Plus (https://pioplus.com) v0.6.10
Verbose mode can be enabled via `-v, --verbose` option
Collected 3 items

=== [test::test_common] Building... (1/2) ===
Please wait...

[Mon Jan 23 22:05:42 2017] Processing native (platform: native, piotest: test_common, lib_ignore: multiCameraIrControl, test_ignore: test_embedded, test_desktop, build_flags: -std=c++11 -D UNITY_INCLUDE_DOUBLE=1)
------
Please wait...
PlatformManager: Installing native
Downloading...
Unpacking  [####################################]  100%
native @ 1.1.0 has been successfully installed!
The platform 'native' has been successfully installed!
The rest of packages will be installed automatically depending on your build environment.
PackageManager: Installing tool-unity @ ~1.20302.1
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
tool-unity @ 1.20302.1 has been successfully installed!

=== [SUMMARY] ===
Environment esp12e	[SKIP]
Environment native	[SUCCESS]
=== [SUCCESS] Took 2.91 seconds ===

=== [test::test_common] Testing... (2/2) ===
test/test_common/test_conversions.cpp:21:test_microseconds_to_distance	[PASSED]
test/test_common/test_conversions.cpp:22:test_distance_to_microseconds	[PASSED]
test/test_common/test_conversions.cpp:23:test_get_avg	[PASSED]

-----------------------
3 Tests 0 Failures 0 Ignored
OK

=== [TEST SUMMARY] ===
test:test_common/env:native	[PASSED]
test:test_desktop/env:native	[IGNORED]
test:test_embedded/env:native	[IGNORED]
=== [PASSED] Took 2.92 seconds ===

You need http://docs.platformio.org/en/latest/userguide/account/cmd_token.html

Generate token and add it to your GitLab CI settings.

But why logging in is required? Are tests “pio-plus”-only functionality, not included in “base” platformio? I understand that even when using basic functionality I’m using platformio servers to download dependencies, and if it required me to register for that, it would be understandable. But what’s special with tests, why compiling and getting dependencies does not require account, but compiling and running tests (locally) require it?