docs: function(name, func) {
        var _test = new Test({
          name: name,
          level: level++
        });
        
        if (this instanceof Test) {
          this.tests.push(_test);
        } else {
          salep.tests.push(_test);
        }
  
        if (salep.isRunning && !skipNextEnabled) {
          testStart(_test);
          func.call(_test);
          _test.cases.forEach(function(_case) {
            if (_case.skipped) {
              skip(_case);
              return;
            } else {
              caseStart(_case);
              try {
                _test.beforeEachCb && _test.beforeEachCb();
                _case.caseFunction && _case.caseFunction();
                _test.afterEachCb && _test.afterEachCb();
  
                _case.success = true;
                success(_case);
              } catch (e) {
                _case.success = false;
                _case.reason = e;
                fail(_case);
              }
            }
          });
        } else {
          _test.skipped = true;
          skipNextEnabled = false;
          skip(_test);
        }
  
        level--;
      }