Navigate between tests and tested code
ReSharper helps you navigate between unit tests and tested code. When your caret is at the name of a class or anywhere within its declaration, you can press Control+T F to navigate to related tests and vice versa, by pressing this shortcut on a test, you will jump to the tested class.
This navigation is also available in the Navigate To Control+Shift+G menu: select Test Subject if you navigate from a unit test, and Related Tests when you navigate from a tested class.
For navigating to and from unit tests, ReSharper establishes links between test classes and the corresponding tested classes. There are several approaches to linking tests and tested classes: all of them are used by default, and you can configure them on the Alt+R, O:
page of ReSharper optionsUse affix search | ReSharper links test classes whose names start or end with the specified affixes to the corresponding classes in tested code. Clear this checkbox to ignore test class names and use other heuristics for navigation. |
Use attribute-based search | ReSharper links test classes annotated with a specific attribute to the corresponding classes in tested code. ReSharper always takes into account the [TestSubject] attribute from JetBrains.Annotations. For example, if you navigate from a class named If you annotate tests with another attribute to link them to tested classes, specify the fully-qualified name of this attribute to take it into account in addition to Clear this checkbox to ignore attributes and use other heuristics for navigation. |
Use generic argument search | ReSharper links test classes with tested classes when the base test class has a generic parameter that represents the tested class, and this generic parameter is annotated with a specifc attribute. Consider the following example:
[TestFixture]
public abstract class TestsFor<[MeansTestSubject] T>
{
private AutoMock myMock;
public T Component => myMock.Create<T>();
}
public class TestsForSampleClass : TestsFor<SampleClass>
{
[Test]
public void TestSample()
{
Component.DoSomething();
}
}
In this example, generic parameter Clear this checkbox to ignore generic arguments and use other heuristics for navigation. |
This feature is supported in the following languages and technologies:
The instructions and examples given here address the use of the feature in C#. For more information about other languages, refer to corresponding topics in the ReSharper by language section.