Caso alguém (além de mim) não saiba como fazer isso, eu postarei meu script PowerShell que faz uma execução cronometrada de uma "rodada de trabalho" usando o Visual Studio.
- O TFS cria um espaço de trabalho temporário
- O TFS obtém o diretório de soluções mais recente
- TFS verifica o arquivo e desfaz o arquivo com check-out
- reconstruir solução (msbuild)
- executa testes de unidade a partir da dll especificada (mstest)
- excluir arquivos e espaço de trabalho
- grava a saída do trabalho para consolar
- escreva o número de segundos gastos executando as 5 primeiras etapas
Felicidades, user30715
## Change to fit your environment ##
$BASEDIR="C:\temp\test\" # Where to store the temporary files
$TFS_SERVER="http://mytfs.srv:8080" # TFS server
$TFS_PROJECT_DIR="$/Path/To/My/Solution/Directory" # Path to solution dir on TFS
$SLNFILE="My.App.sln" # Path to solution file (relative to TFS_PROJECT_DIR)
$UNIT_TEST_DLL="Relative/Path/To/My.App.Test.dll" # Path to unit test dll (relative)
####################################
$TSTAMP=get-date -Format yyyy-MM-dd_HH-mm-ss
$TESTNAME="tfstest." + $TSTAMP
$WORKDIR=$BASEDIR + $TESTNAME
$LOG=$BASEDIR + $TESTNAME + ".log"
function Log()
{
$input | write-host
}
function DoWork()
{
write-host "Getting source from TFS"
mkdir $WORKDIR
pushd $WORKDIR
tf workspace /new /noprompt /server:$TFS_SERVER $TESTNAME
tf workfold /map /server:$TFS_SERVER /workspace:$TESTNAME $TFS_PROJECT_DIR $WORKDIR
tf get /recursive /force /noprompt $TFS_PROJECT_DIR
write-host "Checking out file $SLNFILE"
tf checkout $SLNFILE
write-host "Undoing checkout"
tf undo /noprompt $SLNFILE
write-host "Starting build process"
msbuild $SLNFILE /target:rebuild
write-host "Running tests"
mstest /testcontainer:"$UNIT_TEST_DLL"
popd
}
function CleanUp()
{
write-host "Cleaning up mess"
pushd $BASEDIR
tf workfold /unmap /workspace:$TESTNAME $WORKDIR
tf workspace /delete /noprompt $TESTNAME
rmdir -recurse -force $WORKDIR
popd
}
$VSTIME=(measure-command { DoWork 2>&1 | Log }).TotalSeconds
CleanUp
write-host "Spent $VSTIME seconds doing work"