#include<bits/stdc++.h>
#define ll long long
using namespace std;

int k;
int dfs(int v, int p, vector<vector<int>> &viz){
	int t=-1;
	vector < int > pos;
	for(auto u: viz[v]){
		if(u==p) continue;
		int w=dfs(u,v,viz);
		pos.push_back(w);
		if(t==-1) t=w+1;
		t = min(t,w+1);
	}
	sort(pos.begin(), pos.end());
	int n = pos.size();
	if(v==1){
		if(n>=1) k = max(k, pos[n-1]+1);
		if(n>=2) k = max(k, pos[n-2]+2);
	}
	else{
		if(n>=2) k = max(k, pos[n-1]+2);
	}
	if(t==-1) t=0;
	return t;
}

int main(){
	ios::sync_with_stdio(false);
  	cin.tie(0);
  	int t;
  	cin >> t;
  	while(t--){
  		int n;
  		cin >> n;
  		k=0;
  		vector < vector <int> > viz(n+1);
  		for(int i=0; i<n-1; i++){
  			int a, b;
  			cin >> a >> b;
  			viz[a].push_back(b);
  			viz[b].push_back(a);
		}
		dfs(1,0,viz);
		cout << k << endl;
	}
}
