Question: So I have situation when I need skip current test from test method body.
Simplest way is to write something like this in test method.

```
if (something) return;

```

But I have a lot complicated tests and I need a way to skip test from methods which I invoke in current test method body.
Is it possible?

Answer: 
Further to other answers (and as suggested): I'd suggest using `Assert.Inconclusive` over `Assert.Fail`, since the original poster's situation is not an explicit failure case. 

Using `Inconclusive` as a result makes it clear that you don't know whether the test succeeded or failed - which is an important distinction. Not proving success doesn't always constitute failure!
There is an `Assert.Inconclusive()` method which you can use to nicely skip the current test. Check the [docs](https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.testtools.unittesting.assert.inconclusive?view=mstest-net-1.2.0). Basically it will throw an exception and will show this method as `Skipped`.

I used this as a programmatic check in my code inside the test method:

```
if (!IsEnvironmentConfigured())
{
   Assert.Inconclusive("Some message");
}

```

Here is the result:

```
! ShouldTestThisMethod [31ms]

Test Run Successful.
Total tests: 92
     Passed: 91
    Skipped: 1
 Total time: 1.2518 Seconds

```