Есть ли способ перечислить все классы, которые используют измененные методы рекурсивно? - PullRequest
1 голос
/ 20 апреля 2020

Я хотел бы знать, есть ли способ перечислить все классы, которые используют измененные методы (после объединения изменений в master)? Лучше всего было бы рекурсивно, поэтому, если бы я получил класс с методом, который использует метод, который использует измененный метод, он был бы в списке. Вопрос для C#, но если есть универсальный инструмент для этого, все будет в порядке. Дело в том, чтобы проверить, не приводит ли недавняя фиксация к регрессии в проекте

например.

class one
{
    int something()
    {
        //method that changes
    }
}

class two
{
    int doSomethingWithSomething()
    {
        one objectoOfOne = new one();
        return objectoOfOne.something() + 1;
    }
}

class three
{
    int usingTwoWithSomething()
    {
        two objectOfTwo = new two();
        return objectOfTwo.doSomethingWithSomething() +2;
    }
}

class four
{
    int independent;
}

Я хотел бы иметь список классов один, два, три, когда в объединенном методе изменения что-то () было изменено.

1 Ответ

0 голосов
/ 20 апреля 2020

Инструменты контроля исходного кода, такие как git, не могут понять, что они хранят, кроме как текстовых или двоичных данных. Это включает в себя инструменты слияния, большинство видит только то, что текст был вставлен, удален и (возможно) реорганизован.

Есть некоторые инструменты, которые на самом деле анализируют исходный код, чтобы обеспечить лучший опыт слияния. См. Semanti c merge для примера. Они знают, какие методы и классы были изменены. Если вы знаете, что классы были изменены, должна быть возможность перечислить все зависимые классы, если вы этого хотите. Я не знаю, есть ли у таких инструментов API-интерфейс, если вы хотите подключить его к какой-либо другой системе.

...