#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string>
#include<string.h>
#include<algorithm>
#include<vector>
using namespace std;
#define ll long long 
const int maxn = 2e5+10;
int n,k;
vector<int> vec[maxn];
int dp[maxn];
int ans,cnt; 
int a[maxn];
void dfs(int u,int fa)
{
	dp[u]=100000000;
	if(vec[u].size()==1) dp[u]=0;
	int v;
	for(int i=0;i<vec[u].size();i++)
	{
		v=vec[u][i];
		if(v==fa) continue;
		dfs(v,u);
		dp[u]=min(dp[v]+1,dp[u]);
		if(u!=1)
		ans=max(ans,dp[v]+2);
		else
		a[++cnt]=dp[v];
	}
}
int main()
{
	int t; scanf("%d",&t);
	while(t--)
	{
		scanf("%lld",&n);
		for(int i=1;i<=n;i++) vec[i].clear();
		int u,v;
		ans=0;
		cnt=0;
		for(int i=1;i<n;i++)
		{
			scanf("%d%d",&u,&v);
			vec[u].push_back(v);
			vec[v].push_back(u);
		}
		dfs(1,0);
		sort(a+1,a+1+cnt);
		ans=max(ans,a[cnt]+1);
		for(int i=1;i<cnt;i++) ans=max(ans,a[i]+2);
		printf("%d\n",ans);
	}
	return 0;
}