#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int>pii;
const int MAXN=5e5+20;
//const LL INF=0x3f3f3f3f3f3f3f;
const int INF=0x3f3f3f3f;

vector<int> adj[MAXN];
int n;
int ans;
int dfs(int u,int fa){
    if(u!=1&&adj[u].size()==1){
        return 1;
    }
    vector<int>V;
    for(int v : adj[u]){
        if(v==fa)continue;
        int r=dfs(v,u);
        V.push_back(r);
    }
    sort(V.begin(),V.end());
    if(V.size()>1){
        if(u==1){
            ans=max(ans,max(V.back(),V[V.size()-2]+1));
        }
        else{
            ans=max(ans,V[V.size()-1]+1);
        }

    }
    ans=max(ans,V[0]);
    return V[0]+1;
}
int main(){
   // freopen("1.in","r",stdin);
    int test;
    scanf("%d",&test);
    while(test--){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)adj[i].clear();
        int u,v;
        for(int i=1;i<n;i++){
            scanf("%d%d",&u,&v);
            adj[u].push_back(v);
            adj[v].push_back(u);
        }
        ans=0;
        dfs(1,0);
        printf("%d\n",ans);
    }

}
