Repository: radish-bdd/radish

Issue:
"Error: Location '$PWD/radish' to load modules does not exist" on Windows during running features
Following the instruction from:
http://radish.readthedocs.io/en/latest/installation.html
and 
http://radish.readthedocs.io/en/latest/quickstart.html
instead of running the tests with command
`radish features/`
an error occurs:

```
Error: Location '$PWD/radish' to load modules does not exist

Traceback (most recent call last):
  File "d:\workspace\radishSample\venv\lib\site-packages\radish\errororacle.py", line 52, in _decorator
    return func(*args, **kwargs)
  File "d:\workspace\radishSample\venv\lib\site-packages\radish\main.py", line 206, in main
    return method(core)
  File "d:\workspace\radishSample\venv\lib\site-packages\radish\main.py", line 65, in run_features
    load_modules(basedir)
  File "d:\workspace\radishSample\venv\lib\site-packages\radish\loader.py", line 20, in load_modules
    raise OSError("Location '{0}' to load modules does not exist".format(location))
OSError: Location '$PWD/radish' to load modules does not exist
```
According to https://github.com/radish-bdd/radish - it should be possible to run it on Windows without any modifications.

Tested with following versions:
```
radish-bdd (0.8.3)
radish-parse-type (0.3.5)
```

OS:
```
OS Name	Microsoft Windows 10 Pro, 64-bit
Version	10.0.16299 Build 16299
```

Python:
`Python 3.6.4, 32-bit`



Comments:

Patch:
diff --git a/docs/commandline.rst b/docs/commandline.rst
index beb974c..5f50396 100644
--- a/docs/commandline.rst
+++ b/docs/commandline.rst
@@ -40,6 +40,10 @@ containing steps and terrain functions from multiple locations:
 
 Since version v0.7.0 you can use multiple basedirs within one ``-b`` flag split
 by a colon (:). Similar to the possibilities you've got with ``$PATH``.
+On Windows it is not possbile to use a colon (:) because it is used
+in almost any absolute path, e.g. ``C:\foo\bar``.
+Since version v0.11.2 you can use a semicolon (;) on Windows for
+multiple basedirs.
 
 
 Run - Early exit
diff --git a/radish/utils.py b/radish/utils.py
index afee180..5a35cd1 100644
--- a/radish/utils.py
+++ b/radish/utils.py
@@ -190,4 +190,5 @@ def flattened_basedirs(basedirs):
     Multiple basedirs can be specified within a
     single element split by a colon.
     """
-    return list(x for x in itertools.chain(*(x.split(":") for x in basedirs)) if x)
+    separator = ";" if os.name == "nt" else ":"
+    return list(x for x in itertools.chain(*(x.split(separator) for x in basedirs)) if x)


Test patch:
diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py
index 5aad50f..21ffb72 100644
--- a/tests/unit/test_utils.py
+++ b/tests/unit/test_utils.py
@@ -18,22 +18,26 @@ import radish.utils as utils
 
 
 @pytest.mark.parametrize(
-    "basedirs, expected_basedirs",
+    "basedirs, expected_basedirs, os_name",
     [
-        (["foo", "bar"], ["foo", "bar"]),
-        (["foo:bar", "foobar"], ["foo", "bar", "foobar"]),
+        (["foo", "bar"], ["foo", "bar"], "posix"),
+        (["foo:bar", "foobar"], ["foo", "bar", "foobar"], "posix"),
         (
             ["foo:bar", "foobar", "one:two:three"],
             ["foo", "bar", "foobar", "one", "two", "three"],
+            "posix"
         ),
-        (["foo:", ":bar"], ["foo", "bar"]),
+        (["foo:", ":bar"], ["foo", "bar"], "posix"),
+        (["C:\\windows\\radish"], ["C:\\windows\\radish"], "nt"),
+        (["C:\\windows;radish"], ["C:\\windows", "radish"], "nt"),
     ],
 )
-def test_flattened_basedirs(basedirs, expected_basedirs):
+def test_flattened_basedirs(mocker, basedirs, expected_basedirs, os_name):
     """
     Test flatten basedirs
     """
     # given & when
+    mocker.patch("os.name", os_name)
     actual_basedirs = utils.flattened_basedirs(basedirs)
 
     # then