контекст сонара / мавена: казнь Галлио не удалась. В поисках почему? - PullRequest
4 голосов
/ 01 декабря 2011

У меня есть сервер непрерывной интеграции сервера 2008, на котором я хочу использовать Gallio для выполнения моих MSTests и PartCover для моей панели инструментов Sonar.

Я установил Gallio 3.3.1 x64 вместе с PartCoverи т. д.

Gallio работает через Icarus на моих тестовых сборках (благодаря this answer)

Однако через Sonar я получил этот удивительный след журнала(смотрите ниже).Несмотря на то, что мои тестовые сборки квалифицируются как тестовый проект, сообщение об ошибке для Gallio:

'Embedded error: Gallio execution failed.
No test assembly was found. Please check your project's Gallio plugin configuration.'

Есть идеи, как отследить и устранить эту проблему?

Спасибо,

Примечание: По некоторым причинам я не смог опубликовать этот вопрос в группе пользователей Gallio, поэтому я попробую там.

[INFO] Execute: org.codehaus.sonar:sonar-maven-plugin:2.11:sonar
[INFO] [sonar:sonar {execution: default-sonar}]
[INFO]  Database dialect class org.sonar.jpa.dialect.Derby
[INFO]  Initializing Hibernate
[INFO]  The following 'sln' file has been found and will be used: D:\toto.sln
[INFO]  The project 'toto.Test' has been qualified as a test project.
[INFO]  The project 'titi.Test' has been qualified as a test project.

[INFO]  -------------  Analyzing toto
[INFO]  Selected quality profile : [name=Sonar C# Way,language=cs]
[INFO]  Configure maven plugins...
[INFO]  Compare to previous analysis (2011-11-30)
[INFO]  Compare over 5 days (2011-11-25, analysis of 2011-11-29 10:52:11.443)
[INFO]  Compare over 30 days (2011-10-31, analysis of 2011-11-29 10:52:11.443)
[INFO]  Initializer CSharpProjectInitializer...
[INFO]  Initializer CSharpProjectInitializer done: 6 ms
[INFO]  Skipping the non generated assembly of project : toto
[INFO]  No assembly to check with Gendarme
[INFO]  Skipping the non generated assembly of project : toto
[INFO]  No assembly to check with FxCop
[INFO]  Sensor org.sonar.plugins.csharp.core.CSharpSourceImporter@1acc1c2...
[INFO]  Sensor org.sonar.plugins.csharp.core.CSharpSourceImporter@1acc1c2 done: 116 ms
[INFO]  Sensor com.sonar.plugins.csharp.squid.C@caf6e7...
[INFO]  Sensor com.sonar.plugins.csharp.squid.C@caf6e7 done: 233 ms
[INFO]  Sensor org.sonar.plugins.csharp.gallio.GallioSensor@1b4bc2a...
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Can not execute Sonar

Embedded error: Gallio execution failed.
No test assembly was found. Please check your project's Gallio plugin configuration.
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Can not execute Sonar
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
    at ...

Вот POM, если потребуется:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>totoGroup</groupId>
  <artifactId>toto</artifactId>
  <name>TOTO</name>
  <version>0.0.1-SNAPSHOT</version>
   <packaging>netpack</packaging>

    <profiles> 
 <profile>
      <id>sonar-dotnet</id>
      <activation>
        <!-- Optional activation by default -->
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <!-- Location of the the .Net installations (pick the one you need) -->
        <dotnet.4.0.sdk.directory>C:/Windows/Microsoft.NET/Framework/v4.0.30319</dotnet.4.0.sdk.directory>
        <fxcop.directory>C:/Program Files (x86)/Microsoft Fxcop 10.0</fxcop.directory>
        <partcover.directory>C:\Program Files (x86)\PartCover\PartCover .NET 4.0</partcover.directory>
        <sourcemonitor.directory>C:/Program Files (x86)/SourceMonitor</sourcemonitor.directory>
        <stylecop.directory>C:\Program Files (x86)\StyleCop 4.6</stylecop.directory>

        <sonar.host.url>http://10.101.99.198:20000</sonar.host.url>

      </properties>
   </profile>

   </profiles>

  <properties>
        <sonar.dotnet.visualstudio.solution.file>toto.sln</sonar.dotnet.visualstudio.solution.file>
    <sonar.dotnet.version>4.0</sonar.dotnet.version>
    <sonar.language>cs</sonar.language>
    <sonar.sourceEncoding>UTF-8</sonar.sourceEncoding>
  </properties>

  <build>
    <plugins>

      <plugin>
        <groupId>org.codehaus.sonar-plugins.dotnet</groupId>
        <artifactId>maven-dotnet-plugin</artifactId>
        <version>1.1</version>
        <extensions>true</extensions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>sonar-maven-plugin</artifactId>
        <configuration>
          <language>cs</language>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

1 Ответ

9 голосов
/ 08 июня 2012

Fount it (спасибо за Fabrice Bellingard в списке рассылки sunar_user), его собственные слова:

ОК, вы строите проект с конфигурацией сборки "Release", так что вы можете видетьв журнале Jenkins скомпилированные сборки попадают в папку «bin / release».Однако вы запускаете анализ Sonar с параметрами по умолчанию, и поэтому плагины C # заглядывают в папку «bin / Debug», чтобы найти сборки.

Таким образом, у вас есть 2 решения: • либо вы компилируете проект с помощью ««Отладка» конфигурации сборки • или вы указываете следующее свойство для анализа сонара: «sonar.dotnet.buildConfigurations = Release» (см. Документацию по этому свойству в вики)

...