Testng: @ рд╕реБрдкрд░ рдХреНрд▓рд╛рд╕ рд╕реЗ рдЯреЗрд╕реНрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдк рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЬреВрди 2019  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: cbeust/testng

рдЯреЗрд╕реНрдЯрдПрдирдЬреА рд╕рдВрд╕реНрдХрд░рдг 6.14.3

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рд╕реБрдкрд░ рдХреНрд▓рд╛рд╕ рд╕реЗ @Test рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдХрд┐рддрдиреЗ рдЙрдк рд╡рд░реНрдЧ рд╕реБрдкрд░ рдХреНрд▓рд╛рд╕ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдВред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдкреНрд░рддреНрдпреЗрдХ рдЙрдк рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде @Test рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдзрд╛рд╡рдХ рдкрд░ рдкреБрдирд░реБрддреНрдкрд╛рджрд┐рдд рд╣реИ?

  • [ ] рд╕реАрдк
  • [ ] рдорд╛рд╡реЗрди
  • [x] рдЧреНрд░реЗрдбрд▓
  • [ ] рдЕрдВрддрдГ
  • [ ] рдЧреНрд░рд╣рдг
  • [ ] рдЗрдВрдЯреЗрд▓реАрдЬреЗ
  • [ ] рдиреЗрдЯрдмреАрдиреНрд╕

рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдирдореВрдирд╛

public class BaseTest  extends SetupClass{
    @BeforeClass...
    @BeforeMethod...
    @AfterClass...
    @AfterMethod....

    <strong i="22">@Test</strong>
    public void baseMethod(){
        System.out.println("base method");
    }
}
public class Test1 extends BaseTest{
    <strong i="25">@Test</strong>
    public void test1(){
        System.out.println("test1");
    }
}
public class Test2 extends BaseTest{
    <strong i="28">@Test</strong>
    public void test2(){
        System.out.println("test2");
    }
}

рдореИрдВ рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдПрдХ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

<suite name="Regression Suite" verbose="1" parallel="classes" thread-count="4">
    <parameter name="project" value="TestPrj"/>
    <parameter name="server" value="QA01"/>
    <test name="QA01 TestPrj">
        <parameter name="environment" value="macos"/>
        <groups>
            <run>
                <include name="regression"/>
            </run>
        </groups>
        <packages>
            <package name="test"/>
        </packages>
    </test>
</suite>

рдЧреАрдердм рдореБрджреНрджреЛрдВ рдореЗрдВ рдкреАрдПрд╕ рд╕рдВрдкрд╛рджрди рдХреЛрдб рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рд╣реИ ... рдХреГрдкрдпрд╛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдкрд░ рдЬрд╛рдПрдВред

рд╕рднреА 12 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@vlad230

рдЧреАрдердм рдореБрджреНрджреЛрдВ рдореЗрдВ рдкреАрдПрд╕ рд╕рдВрдкрд╛рджрди рдХреЛрдб рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рд╣реИ ... рдХреГрдкрдпрд╛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдкрд░ рдЬрд╛рдПрдВред

рдЖрдк рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕реЗ рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рдЕрдВрддрдд: рдмрд╛рд▓ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЗ рднреА рдорд┐рд▓реЗрдВрдЧреЗред рдФрд░ рдЕрдЧрд░ рдЙрдиреНрд╣реЗрдВ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡реЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд▓ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╡рд╣ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рддреЛ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

@juherr - рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░?

@krmahadevan рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :)

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рдЕрдВрддрдд: рдмрд╛рд▓ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЗ рднреА рдорд┐рд▓реЗрдВрдЧреЗред рдФрд░ рдЕрдЧрд░ рдЙрдиреНрд╣реЗрдВ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡реЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд▓ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╡рд╣ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рддреЛ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдореБрдЭрд╕реЗ рдкреВрдЫреЗрдВ, рддреЛ рд╕реБрдкрд░ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдпрд╣ рдЕрднреА рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рд╣рдо рдЗрд╕реЗ рд╕реБрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЖрдк рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореЗрдВ baseMethod рдкрд░реАрдХреНрд╖рдг рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ?

@vlad230

рдпрджрд┐ рдЖрдк рдореБрдЭрд╕реЗ рдкреВрдЫреЗрдВ, рддреЛ рд╕реБрдкрд░ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдиреЗ рдпрд╛ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗрдВред

рдпрджрд┐ рдпрд╣ рдЕрднреА рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рд╣рдо рдЗрд╕реЗ рд╕реБрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╡реГрджреНрдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рдЙрдВрдЯрд░ рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рд╣реИред рдпрджрд┐ рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рдХрд┐рддрдиреЗ рдмрдЪреНрдЪреЗ рд╡рд░реНрдЧ рдореМрдЬреВрдж рд╣реЛрдВ, рддреЛ рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдХреЗ рдЗрд╕реЗ рдЖрдЬ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

  1. рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ org.testng.IHookable
  2. рдЗрд╕рдХреА run() рд╡рд┐рдзрд┐ рдХреЗ рднреАрддрд░, рдПрдХ рд╕рдВрдкрд╛рджрди рдЪреЗрдХ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдЪрд▓рд╛рддреА рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рдирдореВрдирд╛ рд╣реИ

рдорд╛рд░реНрдХрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЪрд▓рдиреА рдЪрд╛рд╣рд┐рдП

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Target({METHOD, TYPE})
public <strong i="20">@interface</strong> RunOnce {
}

рдпреЗ рд╣реИ рд╕реНрдЯреЗрдЯ рдЯреНрд░реИрдХрд░ рд╕рд┐рдВрдЧрд▓рдЯрди

import java.lang.reflect.Method;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class StateTracker {

  private static final StateTracker instance = new StateTracker();

  private final Map<String, Object> runOnceData = new ConcurrentHashMap<>();

  private StateTracker() {}

  public static StateTracker getInstance() {
    return instance;
  }

  boolean canExecute(Method method) {
    RunOnce runOnce = method.getAnnotation(RunOnce.class);
    String methodName = method.getName();
    boolean execute = true;
    if (runOnce != null) {
      if (runOnceData.containsKey(methodName)) {
        execute = false;
      } else {
        runOnceData.put(methodName, new Object());
      }
    }
    return execute;
  }
}

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛

import org.testng.IHookCallBack;
import org.testng.IHookable;
import org.testng.ITestResult;
import org.testng.annotations.Test;

public class BaseTest implements IHookable {

  <strong i="27">@Test</strong>
  <strong i="28">@RunOnce</strong>
  public void baseclassTestMethod() {
    System.err.println("Base class test method executed");
  }

  <strong i="29">@Override</strong>
  public void run(IHookCallBack callBack, ITestResult testResult) {
    boolean execute =
        StateTracker.getInstance()
            .canExecute(testResult.getMethod().getConstructorOrMethod().getMethod());
    if (execute) {
      callBack.runTestMethod(testResult);
    } else {
      testResult.setStatus(ITestResult.SKIP);
      testResult.setThrowable(new RuntimeException("Intentionally skipping"));
    }
  }
}

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдмрдЪреНрдЪреЛрдВ рдХреА рдХрдХреНрд╖рд╛рдПрдВ рдХреИрд╕реА рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА

import org.testng.annotations.Test;

public class ChildClass1 extends BaseTest {

  <strong i="33">@Test</strong>
  public void childTest() {
    System.err.println(getClass().getName() + ".childTest() executed");
  }
}
import org.testng.annotations.Test;

public class ChildClass2 extends BaseTest {

  <strong i="36">@Test</strong>
  public void childTest() {
    System.err.println(getClass().getName() + ".childTest() executed");
  }
}

рдЖрдкрдХреЛ рдХреБрдЫ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рддрдВрддреНрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЫрд╛рдВрдЯрддрд╛ рд╣реИ рдФрд░ рдЫреЛрдбрд╝реЗ рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ @RunOnce рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

@krmahadevan
рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдиреЗ рдпрд╛ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗрдВред

рдореИрдВ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЬреЛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ "рдмреЗрд╕ рдХреНрд▓рд╛рд╕" рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрд╕ рдлреАрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рдкрд╛рд░реНрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ @Before рдФрд░ @After рдореЗрдердбреНрд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдиреНрдп рд╣реЗрд▓реНрдкрд░ рдореЗрдердбреНрд╕ (рдЯреЗрд╕реНрдЯ рдирд╣реАрдВ) рд╣реИрдВ рдЬреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ рдЯреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде-рд╕рд╛рде "рдЪрд╛рдЗрд▓реНрдб рдХреНрд▓рд╛рд╕реЗрд╕" рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред ". рддреЛ, рдЗрд╕ рддрд░рд╣ рдЖрдк рдЕрдкрдиреЗ рдмрдЪреНрдЪреЗ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕рд┐рд░реНрдл рдирдП рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдФрд░ рдмрдЪреНрдЪреЗ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХреЛрдб рдХреА рдирдХрд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА рдЬреЛ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреА рд╣реИрдВ рдФрд░ рдмрд╛рд▓ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг рд╣реЛрдВрдЧреЗред
рдЪреВрдВрдХрд┐ рдореИрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдХреНрд╖рд╛рдПрдВ рдЪрд▓рд╛рдХрд░ рдЯреЗрд╕реНрдЯ рд░рди рдЯрд╛рдЗрдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкрдиреА рдореВрд▓ "рдмреЗрд╕ рдХреНрд▓рд╛рд╕" рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рд╕рдореЗрдВ 50+ рдЯреЗрд╕реНрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХрдИ рдЫреЛрдЯреЗ "рдмрд╛рд▓ рд╡рд░реНрдЧреЛрдВ" рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рдЗрди рдЫреЛрдЯреЗ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЕрдиреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ / рдирд┐рд╖реНрдкрд╛рджрдХред

@krmahadevan рд╡рд┐рд╕реНрддреГрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдмреЛрдЭрд┐рд▓ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреВрдВрдЧрд╛ред
рдореБрдЭреЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдкреБрди: рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯрдЕрдк рдХреА рдмрд╛рдд рд╣реИ / рдЯрд┐рдпрд░рдбрд╛рдЙрди рд╣рдореЗрд╢рд╛ @ / @After рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╕реЗ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЛ рдХрдХреНрд╖рд╛ рд╕реЗ рдкрд╣рд▓реЗ рдлрд┐рд░ рд╕реЗ рдорд╛рд░ рдбрд╛рд▓рд╛ рд╣рд░ рдмрд╛рд░ рд╣реЛрдЧрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдРрд╕рд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬрд╣рд╛рдВ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреИрд░реЗрдВрдЯ рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЬрдм рддрдХ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛ рди рд╣реЛ ( dependsOnMethods ) рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдХреНрд╕рд░ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@krmahadevan WDYT?

@vlad230

рд╡рд┐рд╕реНрддреГрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдмреЛрдЭрд┐рд▓ рд▓рдЧ рд░рд╣рд╛ рд╣реИ

рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рднреА рдирд┐рдпрдорд┐рдд рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджрд┐рдЦрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ, рдмрд╕ рдЗрд╕реЗ рдЕрдкрдирд╛рдПрдВ рдФрд░ рдЗрд╕ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред

рдЪреВрдВрдХрд┐ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреВрдВрдЧрд╛ред

рдирд╣реАрдВ, рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред рдЯреЗрд╕реНрдЯ рд╣рд░ рд╕рдордп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддреЗ рд╣реИрдВред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╡реЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХреЛ рд╕рднреА рдЕрдиреБрдХреВрд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХреЗред рдореИрдВрдиреЗ рдЬреЛ рдирдореВрдирд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдЙрди рдЕрдиреБрдХреВрд▓рдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬрд┐рдирдореЗрдВ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред

рдореБрдЭреЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдкреБрди: рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯрдЕрдк рдХреА рдмрд╛рдд рд╣реИ / рдЯрд┐рдпрд░рдбрд╛рдЙрди рд╣рдореЗрд╢рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ @ рд╕реЗ рдкрд╣рд▓реЗ / @after рдХрд┐ рдлрд┐рд░ рд╕реЗ рдорд╛рд░ рдбрд╛рд▓рд╛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╕реЗ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЛ рдХрдХреНрд╖рд╛ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд░ рдмрд╛рд░ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдХреЛ рд╣рд░ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЖрдкрдХреЛ @Test рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ @BeforeTest (рдЬреЛ рдкреНрд░рддрд┐ <test> рдЯреИрдЧ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ) рдпрд╛ @BeforeSuite (рдЬреЛ рдкреНрд░рддрд┐ <suite> рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ)

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреА рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЖрдкрдХреА рдЯреЗрд╕реНрдЯ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреЗрд╕реНрдЯ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред рдореЗрд░реЗ рд▓рд┐рдП рд╡реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рдзреНрд╡рдирд┐ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрддреБрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рд╢рд░реНрддреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

@juherr - рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд╣реАрдВ рднреА рдкрд╛рдпрд╛ рдЬрд╛рдП, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рдХреЛрдИ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рдЗрд╕реЗ рд╕рднреА рдмрд╛рд▓ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рд╣рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ @Test рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкрдХреНрд╖ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрд░рд╛рдЬрдХрддрд╛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд▓реЛрдЧ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХреЗ рднреАрддрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ (рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рд╣реИ)ред рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╛рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдФрд░ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдорд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдлрд┐рдЯ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

@krmahadevan рдореБрдЭреЗ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдП рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореЗрд░реЗ рдореВрд▓ рд╡рд░реНрдЧ (рдмреЗрд╕рдЯреЗрд╕реНрдЯ - рдЬреИрд╕реЗ рдбреИрд╢рдмреЛрд░реНрдбрдЯреЗрд╕реНрдЯ) рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм 15 рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ 3 рдмрд╛рд▓ рд╡рд░реНрдЧ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреИрд╢рдмреЛрд░реНрдбрдлрд┐рд▓реНрдЯрд░рдЯреЗрд╕реНрдЯ, рдбреИрд╢рдмреЛрд░реНрдбрдЯреНрд░реАрдЯреЗрд╕реНрдЯ, рдбреИрд╢рдмреЛрд░реНрдбрдПрдбрд┐рдЯрд░рдЯреЗрд╕реНрдЯ) рдЬрд┐рдирдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЕрдВрджрд░ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВред рдореЗрд░реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдЙрди 15 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ 3 рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП, 3x15 = 45 рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ) рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рд░рди рдЯрд╛рдЗрдо рдХреЛ рдмреЗрдХрд╛рд░ рдореЗрдВ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ рдПрдХ рдмрд╛рд░ 15 рдкрд░реАрдХреНрд╖рдгред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдЬреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╡рд░реНрдЧ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рд╣рд░ рдмрд╛рд░ рдЬрдм рдкрд░реАрдХреНрд╖рдг рдПрдХ рдмрдЪреНрдЪреЗ рд╡рд░реНрдЧ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╡рд░реНрдЧ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВрдЧреЗ, рднрд▓реЗ рд╣реА рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рд▓ рд╡рд░реНрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрджред

рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВред рдлрд┐рд░ рднреА рдзрдиреНрдпрд╡рд╛рджред

@vlad230

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореЗрд░реЗ рдореВрд▓ рд╡рд░реНрдЧ (рдмреЗрд╕рдЯреЗрд╕реНрдЯ - рдЬреИрд╕реЗ рдбреИрд╢рдмреЛрд░реНрдбрдЯреЗрд╕реНрдЯ) рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм 15 рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ 3 рдмрд╛рд▓ рд╡рд░реНрдЧ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреИрд╢рдмреЛрд░реНрдбрдлрд┐рд▓реНрдЯрд░рдЯреЗрд╕реНрдЯ, рдбреИрд╢рдмреЛрд░реНрдбрдЯреНрд░реАрдЯреЗрд╕реНрдЯ, рдбреИрд╢рдмреЛрд░реНрдбрдПрдбрд┐рдЯрд░рдЯреЗрд╕реНрдЯ) рдЬрд┐рдирдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЕрдВрджрд░ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВред рдореЗрд░реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдЙрди 15 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ 3 рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП, 3x15 = 45 рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ) рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рд░рди рдЯрд╛рдЗрдо рдХреЛ рдмреЗрдХрд╛рд░ рдореЗрдВ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ рдПрдХ рдмрд╛рд░ 15 рдкрд░реАрдХреНрд╖рдгред

рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, DashboardFilterTest, DashboardTreeTest, DashboardEditorTest рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ DashboardTest рдХреНрдпреЛрдВ рд╣реЛрдЧрд╛? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ DashboardTest рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рд╡рд┐рд░рд╛рд╕рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореЗрдВ рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рдЕрд▓рдЧ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдбреИрд╢рдмреЛрд░реНрдбрдЯреЗрд╕реНрдЯ рдХреЛ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рдЧреИрд░ @Test рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВред рдлрд┐рд░ рднреА рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ (рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЪреБрдиреМрддрд┐рдпрд╛рдВ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИ), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреА рд╡реИрдзрддрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рд╣реЛ рд░рд╣реА рд╣реИред

@krmahadevan

рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, DashboardFilterTest, DashboardTreeTest, DashboardEditorTest рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ DashboardTest рдХреНрдпреЛрдВ рд╣реЛрдЧрд╛? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ DashboardTest рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рд╡рд┐рд░рд╛рд╕рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореЗрдВ рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рдЕрд▓рдЧ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдбреИрд╢рдмреЛрд░реНрдбрдЯреЗрд╕реНрдЯ рдХреЛ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рдЧреИрд░ @Test рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

'рдбреИрд╢рдмреЛрд░реНрдбрдЯреЗрд╕реНрдЯ' рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдУрдкрдирдбреИрд╢рдмреЛрд░реНрдб (), рдХреНрд░рд┐рдПрдЯрдбреИрд╢рдмреЛрд░реНрдб () рдЖрджрд┐) рдФрд░ рд╕реЗрдЯрдЕрдк/рдЯрд┐рдпрд░рдбрд╛рдЙрди/рдХреНрд▓реАрдирдЕрдк (@ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ/@ рдмрд╛рдж рдореЗрдВ) рд╡рд┐рдзрд┐рдпрд╛рдВ рдЬреЛ рдХрд┐ рдмрд╛рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдмрд╛рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХреЛрдб рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╣рд╛рдВ, 'рдбреИрд╢рдмреЛрд░реНрдб рдЯреЗрд╕реНрдЯ' рдореЗрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рд╕рдордЧреНрд░ рд░реВрдк рдХреА рдЬрд╛рдВрдЪ, рдмреБрдирд┐рдпрд╛рджреА рд╕реАрдЖрд░рдпреВрдбреА рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЬреЛ ' рдЯреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢реНрд░реЗрдгреА рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ)ред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреИрд░- @ рдЯреЗрд╕реНрдЯ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ рдФрд░ рдХреЛрдИ рдЧрд▓рддреА рд╕реЗ рдпрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ) рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рд╣реИ рдирд╛?

@vlad230

'рдбреИрд╢рдмреЛрд░реНрдбрдЯреЗрд╕реНрдЯ' рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдУрдкрдирдбреИрд╢рдмреЛрд░реНрдб (), рдХреНрд░рд┐рдПрдЯрдбреИрд╢рдмреЛрд░реНрдб () рдЖрджрд┐) рдФрд░ рд╕реЗрдЯрдЕрдк/рдЯрд┐рдпрд░рдбрд╛рдЙрди/рдХреНрд▓реАрдирдЕрдк (@ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ/@ рдмрд╛рдж рдореЗрдВ) рд╡рд┐рдзрд┐рдпрд╛рдВ рдЬреЛ рдХрд┐ рдмрд╛рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдмрд╛рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХреЛрдб рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдФрд░ рд╣рд╛рдБ рд╡реЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рднреАрддрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рд╡рд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд▓ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рд╣рд╛рдВ, 'рдбреИрд╢рдмреЛрд░реНрдб рдЯреЗрд╕реНрдЯ' рдореЗрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рд╕рдордЧреНрд░ рд░реВрдк рдХреА рдЬрд╛рдВрдЪ, рдмреБрдирд┐рдпрд╛рджреА рд╕реАрдЖрд░рдпреВрдбреА рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЬреЛ ' рдЯреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢реНрд░реЗрдгреА рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ)ред

рдЖрдк рдЕрднреА рднреА GenericDashboardTest extends DashboardTest рдирд╛рдордХ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп @Test рд╡рд┐рдзрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреИрд░- @ рдЯреЗрд╕реНрдЯ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ рдФрд░ рдХреЛрдИ рдЧрд▓рддреА рд╕реЗ рдпрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ) рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рд╣реИ рдирд╛?

рдЦреИрд░, рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ :) рдЗрд╕ рддрд░рд╣ рдХреА рдлрд┐рд╕рд▓рди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдПред рдмреЗрд╕ рдХреНрд▓рд╛рд╕ (рдЬреЛ рдЖрдкрдиреЗ рд╕рдордЭрд╛рдпрд╛ рд╣реИ) рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЬреЗрдиреЗрд░рд┐рдХ @Test рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рд┐рд░реНрдл рд╕рд╣рд╛рдпрдХреЛрдВ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдХреЛ рдШрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд░рдЦрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рд╣рд╛рде рдореЗрдВ рднреНрд░рдо рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

_рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдирд╛_ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

sen1983 picture sen1983  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rkonkul picture rkonkul  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nithril picture nithril  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

blackduck-joe picture blackduck-joe  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shaburov picture shaburov  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ