Problemas com WebTest Recorder e Internet Explorer
Olá,
Desde meus primeiros contatos com o WebTest Recorder do Visual Studio Team System, identifiquei que problemas aconteciam com ele com frequência e, por conta disso, perdia tempo correndo atrás de uma solução a cada vez que isso acontecia.
E ontem aconteceu denovo. Eu, com uma instalação completa e atualizada do VS 2008 Team Suite, não conseguia ver a barra do WebTest Recorder no Internet Explorer 8. Fazendo uma pesquisa rápida, encontrei um post do Michael Taute que compila soluções para diversos tipos de problemas referentes ao plugin. Você pode ler o post na íntegra em:
Porém, um dos problemas me chamou a atenção ontem, depois de ter passado por ele. O cenário é o seguinte:
- Windows 7 64 Bits
- Visual Studio 2008 Service Pack 1 Up-To-Date
- Internet Explorer 8
O add-on do webtest recorder estava habilitado no navegador e, mesmo assim, a barra não aparecia. Veja a solução apontada pelo Michael:
O Windows Vista faz cache da lista de barras disponíveis para o Internet explorer e a barra do gravador não estava disponível na sua lista. A correção consiste em forçar o Windows a reconstruir este cache. Para fazer isso, primeiro certifique-se que você está sem nenhuma janela do Internet Explorer aberta e então abra o editor de registros do Windows (Regedit) e exclua as seguintes chaves:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\Component Categories\{00021493-0000-0000-C000-000000000046}
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\Component Categories\{00021494-0000-0000-C000-000000000046}
Nota: Por padrão, o editor de registro 32 bits está localizado em %WINDIR%\SysWow64\RegEdt32.exe
Vamos aguardar e torcer para que a ferramenta de testes web do Visual Studio 2010 seja mais estável
[]’s
Ricardo Serradas
Máquinas virtuais de Visual Studio 2010 Ultimate e TFS 2010
Olá,
Para quem é daqueles que está sempre querendo estar um passo à frente, é uma informação muito importante. A Microsoft já disponibiliza para download um kit de aprendizado sobre o Visual Studio 2010 e o Team Foundation Server 2010. As máquinas virtuais existem nas versões para Windows Virtual PC, Microsoft Virtual PC e Hyper V.
Este material contém tudo que é preciso para estudar e entender as capacidades desta poderosa ferramenta de ALM (Application Lifecycle Management). Inclusive, a base de dados do TFS já vem populada com dados de exemplo. Há apenas uma exceção: as funcionalidades de Lab Management não estão inclusas. Ainda espera-se uma novidade vinda do time de produto relacionada a isso.
Abaixo, o link para download de cada uma das versões:
As máquinas tem validade até 9 de abril de 2010, data de expiração do trial do SQL Server. Notificações de ativação serão exibidas durante o uso, comportamento normal de uma versão trial do Windows. Não há com o que se preocupar.
Boa diversão!
[]’s
Ricardo Serradas
LINQ To Entities e o método Contains, um contorno
Olá a todos,
Depois de muito tempo, volto a escrever. Tem sido uma dura correria que me impossibilitou de dar atenção a este valioso espaço. Porém, mais uma vez, prometo tentar reservar um pouco do meu tempo para enriquecer o conteúdo desta página.
Volto hoje com um assunto que não costumo discutir aqui no blog, que é codificação.
Ultimamente tenho ocupado quase que todo o meu tempo com estudos e discussões sobre a melhor forma de codificar algo. Um problema que encontrei dias atrás foi uma limitação do LINQ To Entities, que não implementou um método mapeado para a função “IN” do SQL. Um exemplo: quero obter todos os usuários do banco cujo ID é um dos números da sequência mística do seriado LOST, que é: 4, 8, 15, 16, 23, 42. A query SQL seria:
SELECT * FROM USER U WHERE U.ID IN (4, 8, 15, 16, 23, 42)
Em tese, uma expressão LINQ para fazer a mesma coisa seria mais ou menos assim:
string[] ids = { “4″, “8″, “15″, “16″, “23″, “42″ };
var users = (from t in _db.User where ids.Contains(t.Id.ToString()) select t).ToList();
Em tempo de compilação, tudo certo. Porém, ao executar este código, você receberá esta mensagem de erro:
LINQ to Entities does not recognize the method 'Boolean Contains(Int32)'
É possível estender as bibliotecas do LINQ para mapear a função, criar uma função ultra-complicada para fazer isso, mas há uma maneira de resolver com uma linha de código, que é:
var users = _db.User.Where("it.Id IN {" + string.Join(",", ids) + "}");
Atenção para a palavra chave “it”, ela representa sua entidade na query. Logo, Id é a propriedade.
Experimente!
[]’s
Ricardo Serradas
Erro MSB6006 em testes unitários numa Team Build
Olá a todos! Hoje vamos falar de mais um capítulo da série “Problema e solução”.
Problema:
Ao configurar uma Team Build no VSTS de um projeto que compila e que roda os testes unitários tudo certinho, a build roda, porém o status dela fica como “Partially Succeeded” porque os testes unitários falharam e, ao analisar o log, você encontra a seguinte linha no final:
MSBUILD : warning MSB6006: “MSTest.exe” exited with code 1.
O mais interessante é que se você roda os testes unitários a partir do Test List da Solution, todos funcionam, não é?
Causa:
Pois bem. Por algum motivo, o erro se dá por conta do usuário TFSSERVICE* não ter permissão na pasta onde o resultado do build foi colocado (ou “dropado”).
Solução:
Basta permitir escrita (tanto NTFS quando de compartilhamento) para pra o usuário TFSSERVICE na pasta de build drop.
*Este nome pode variar de acordo com a instalação realizada.
[]’s
Ricardo Serradas
Erro TF53010 ao iniciar o TFSServerScheduler
Mais um erro comum depois de criar uma nova instalação do servidor do VSTS é aquele que você visualiza logo ao iniciar a máquina, dizendo algo como “Alguns serviços não puderam ser inicializados adequadamente. Consulte o visualizador de eventos…”.
Então, a primeira iniciativa que tomamos é olhar qual serviço com modo de startup automático não foi inicializado.
Chegando lá no snap-in de serviços, conferimos que o serviço “Visual Studio Team Foundation Server Task Scheduler” (TFSServerScheduler) não está inicializado. Vamos lá então: iniciamos ele manualmente e… Ele inicia! E fica lá, rodando normalmente. Mas oras, então porque ele não conseguiu subir no startup da máquina?
Consultando o Event Log, encontramos a seguinte mensagem de erro:
TF53010: The following error has occurred in a Team Foundation component or extension:
(…)
Application Domain: TFSServerScheduler.exe
(…)
Detailed Message: Unable to connect to the remote server
O que acontece?
O TFSServerScheduler depende tanto do SQL Server quanto do IIS para funcionar. Logo, se um dos dois serviços ainda não estiver devidamente inicializado, o TFSServerScheduler não vai conseguir ser inicializado também.
Como contornar isso?
Basta configurar o serviço TFSServerScheduler para ser dependente dos serviços do SQL e do IIS. Assim, ele só fará tentativas de inicialização depois que os dois serviços os quais ele depende estejam devidamente no ar. Para configurar isso, use a seguinte linha de comando no Command Prompt:
sc config TFSServerScheduler depend= W3SVC/MSSQLSERVER
Reinicie o servidor para conferir. O serviço estará devidamente inicializado.
[]’s
Ricardo Serradas
Erro TF15003 no Event Viewer do TFS
Está aí mais um código de erro que vem incomodando logo depois de uma instalação nova e completa de um servidor do VSTS é feita. A mensagem de erro é encontrada no Visualizador de Eventos (Event Viewer) do Windows e é exatamente assim:
TF15003: The cache root specified in the fileCacheRoot configuration value must be an absolute (rooted) path. File caching will be disabled.
Isso soa falha no processo de instalação e a causa nada mais é do que a pasta que está sendo apontada como cache no arquivo de Configuração do WebService de Version Control do TFS não existir. Como conferir isso? Veja:
- Acesse a pasta de instalação do TFS e edite o arquivo Web.Config, comumente em:
C:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\VersionControl\Web.Config
- Encontre a chave “fileCacheRoot”, dentro de “AppSettings” e confira se a pasta para a qual a chave está apontando existe. No meu caso, apontava para:
C:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\VersionControl\Data
Se a pasta realmente não existir, basta criá-la. Após isso, reinicie os serviços e confira se a mensagem de erro aparece de novo no Event Viewer. Se não aparecer mais, pronto! Seu serviço de controle de versão voltará a trabalhar com cache.
[]’s
Ricardo Serradas
Erro MSB4019 numa Team Build
Numa instancia recém instalada do TFS 2008, onde tudo parecia estar funcionando 100%, encontrei um problema o qual percebi ter pouca referência à respeito.
Criei uma solution de testes para armazenar no Source Control, adicionei projetos, tudo tranqüilo. Depois de tudo, parti para a configuração de um Team Build.
A solução compilava normalmente na máquina client, porém, depois que subi a solução no TFS o team build falhou. Veja a mensagem de erro:
Error MSB4019: The imported project [TargetPath] was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
O erro era vinculado sempre à Web Projects (Web Application, WebService, etc). Isso ocorre porque os targets para aplicações web não estão instaladas no servidor de build.
Existem duas formas de resolver o problema. Uma delas (e a que eu aconselho) é simplesmente instalar o Visual Studio 2008 com as mínimas opções (C# e Visual Web Developer) no servidor de build. O ponto negativo desta solução é que estará consumindo espaço em disco do servidor de build.
A outra opção, se não quiser instalar o VS 2008 no servidor é a seguinte:
- Acesse: MSBuild\Microsoft\VisualStudio\v9.0\WebApplications na máquina client;
- Copie Microsoft.WebApplication.targets para o diretório da solução do projeto;
- Adicione o arquivo como parte da solução e versione-o;
- Edite o arquivo TFSBuild.proj da sua WebApplication usando um editor de texto (normalmente em [TeamProject]/TeamBuildTypes/[SolutionName]Build);
- Encontre a linha que faz o import do WebApplication Target a partir da pasta do MSBuild no Program Files:
<Import Project=”$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets” />
E substitua por:
<Import Project=”$(SolutionDir)\Microsoft.WebApplication.targets” />
- Salve seu arquivo e suba a nova versão no TFS.
Esta solução nada mais faz do que disponibilizar o arquivo de target dentro da própria solution para que o MSBuild o busque lá dentro. O ponto negativo desta é que para cada solução que você for versionar que tiver um Web Project será necessário versionar uma cópia do arquivo de target no TFS.
Escolher a melhor opção para seu cenário é com você. Experimente!
Um abraço,
Ricardo Serradas
Erro TF30224 ao criar novo projeto no TFS 2010
Seguindo minha saga de estudos no VSTS 2010, encontrei mais um problema: o erro TF30224 ao tentar criar um novo projeto no TFS.
A mensagem de erro, depois que descobrimos a solução, é bem clara: “verifique se o servidor SQL está no ar ou se você tem permissão para acessá-lo“. Não é bem o servidor SQL, e sim o servidor de relatórios, o Report Server.
Ao acessar http://[TFSSERVER]/Reports com o TFSSETUP (usuário que usei para instalar todo o TFS) vi que não conseguia enchergar nada. Como resolver isso? Acessando a mesma URL porém autenticando-se como o Administrador local do servidor.
Pronto! Só atribuir permissão de Content Manager para o TFSSETUP (ou o usuário que está usando para criar o projeto, o seu “TFS Admin”) assim:
- Acesse http://[TFSSERVER]/Reports como orientado acima;
- Clique na aba “Propriedades”;
- Clique em “Atribuição de nova função”;
- Em “Nome do grupo ou usuário”, digite o usuário que necessita da permissão (no meu caso, [TFSSERVER]\TFSSETUP);
- Em “Função”, selecione “Content Manager” e em seguida clique em OK.
E pronto! Você conseguirá prosseguir com a criação do Team Project.
[]’s
Ricardo Serradas
Erro TF255147 ao configurar o TFS 2010
Olá pessoal,
Hoje instalando o TFS 2010 num ambiente single server me deparei com dois problemas que não estão previstos no TFSInstall.chm, que vem no DVD de instalação do TFS.
O primeiro erro foi que não há web.config em “C:\Program Files\Microsoft Team Foundation Server 10.0\Application Tier\Web Services”.
Solução: É preciso criar uma cópia do web.config.template já existente lá.
Segundo erro: Visualizado no wizard de configuração padrão do TFS. Veja:
Error [ Configuration Database ] TF255147: The following server that is running SQL Server is not listening on the expected TCP port: TFS01.

As portas necessárias já estavam liberadas, a instancia do SQL já estava rodando… O que fazer? Foi então quando me lembrei de dar uma olhada nas configurações do SQL 2008 (em Start > All Programs > Microsoft SQL Server 2008 > Configuration Tools > SQL Server Configuration Manager) e lá vi que o protocolo TCP/IP não estava habilitado (e não vem habilitado por padrão numa instalação do SQL).

O que fiz então foi habilitar o protocolo, com um duplo clique em TCP/IP e na aba Protocol, mudar a propriedade Enabled para Yes.
Feito isso, voilá! O teste de configurações rodou 100%! Mas, há um porém… Se a instalação do TFS for interrompida por algum motivo (no nosso caso, pelo SQL não estar corretamente configurado) a instalação do Sharepoint Services será corrompida. Isso é um bug conhecido do Beta1 do TFS.
Por conta disso, mãos à obra! Desinstalar todo o TFS + WSS e começar denovo. Então, dessa vez, tudo correrá bem. ![]()
Um abraço!
Ricardo Serradas
VSTS: Mais qualidade aos times de desenvolvimento
Olá a todos,
Visitei o blog do Marcos Dell Antonio e lá encontrei um posto super interessante falando sobre como o VSTS pode aumentar a produtividade/qualidade de uma equipe de desenvolvimento de software.
Gostaria de citar aqui um ponto crucial do post dele: Citação a Joel Spolsky, que criou 12 perguntas simples que, depois de respondidas, te trariam um feedback sobre seu time: ele é bom ou não é? Veja:
Segundo Joel, se pensarmos que cada “sim” dado à cada questão você colecionasse um ponto, se o seu total for acima de 10, sua equipe tem qualidade, caso contrário ela precisa e deve ser melhorada.
Concordei plenamente com o raciocínio e imagino que se um time conseguir trabalhar com cada um desses itens simultâneamente o trabalho realizado será de altíssima qualidade.
Acima, em itálico, coloquei ao lado de cada pergunta o que julgo ser a resposta mais adequada para cada questão. Claro, no post do Marcos ele encaixa de forma plena o uso do VSTS em cada uma das perguntas, o que é totalmente possível e aconselhado mas, num mundo mais “hostíl”, talvez não seja possível encorporar o trabalho dele em alguns dos itens citados nas perguntas.
E para finalizar, gostaria de deixar novamente meus parabéns ao posto do Marcos! Fantástica visão de utilização do VSTS! Abaixo, segue link do post dele. Vale muito a pena conferir na íntegra:
Um abraço!
Ricardo Serradas