问题列表 - 第37782页

为什么在同一个测试项目程序集中调用[AssemblyInitialize]和[AssemblyCleanup]两次?

我认为这些属性的全部目的是每个程序集只运行一次.我有一个简单的类如下:

[TestClass]
public class AssemblyIntegrationTestSetup
{
    public AssemblyIntegrationTestSetup() { }
    public TestContext TestContext { get; set; }

    [AssemblyInitialize]
    public static void SetupIntegrationTests(TestContext context)
    {
         WindowsServiceService.Instance.StartService("Distributed Transaction Coordinator");
    }

    [AssemblyCleanup]
    public static void TeardownIntegrationTests()
    {
          WindowsServiceService.Instance.StopService("Distributed Transaction Coordinator");
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行测试套件时,程序集级Initialize和Cleanup方法执行两次.以下是关于我的环境的详细信息:

  1. 所有测试类都在同一个项目/程序集中.
  2. 我有按命名空间分隔的集成和单元测试.
  3. 对于集成测试,我使用MSTextExtensions来允许回滚数据库事务.
  4. 我也开始/停止MS SQL Server DTC服务,这是回滚功能所必需的.我希望每个测试套件运行一次(我发现最好的折衷方案是使用汇编级属性).代码可以工作,但它执行两次.
  5. 如果重要的话,我在一些测试中也使用了Microsoft Moles Framework.

观察到的行为类似于:

AssemblyInitialize         

Class1.TestInitialize
Class1.TestMethod1
Class1.TestCleanup

AssemblyInitalize         <-- //This shouldn't be happening right?

Class2.TestInitialize
Class2.TestMethod1
Class2.TestCleanup

Class2.TestInitialize
Class2.TestMethod2
Class2.TestCleanup

Class5.TestInitialize
Class5.TestMethod1
Class5.TestCleanup

Class7.TestInitialize
Class7.TestMethod1
Class7.TestCleanup

//More random bouncing around then...

AssemblyCleanup …
Run Code Online (Sandbox Code Playgroud)

integration-testing unit-testing mstest visual-studio-2008

9
推荐指数
1
解决办法
5487
查看次数

需要TeamCity + WiX + MSBuild工作流程建议

我一直致力于持续集成项目的下一步,即让TeamCity构建我的应用程序,自动更改所有程序集的版本号,然后创建安装程序.

首先是一点背景:

我在过去的几个月里一直在成功运行TeamCity,它构建我的配置并运行我的NUnit和NCover测试就好了.

我花了一点时间研究安装程序 - 我一直讨厌InstallShield,从来没有考虑过我当前的应用程序.我喜欢NSIS,但后来偶然遇到了WiX.我对MS Installer架构没有任何了解,我理解这对于复杂的项目是危险的,所以在某些时候我需要了解更多.然而,经过几天的SO问题,谷歌搜索和阅读博客,我有一个成功构建,安装,应用程序运行的WiX项目,并且一切都干净地卸载.大!

我还想让TeamCity构建配置自动更新所有程序集的版本号.我能够通过在我的开发机器上安装MSBuild社区任务并创建使用BeforeBuild目标和FileUpdate任务来更改版本号的部署配置来模拟此功能.这是正常的,除了在我的开发机器上,我没有替换build_vcs_number_1环境变量.

这就是我现在的位置 - 我需要让TeamCity进行更新,虽然它确实有build_vcs_number_1环境变量,但我无法弄清楚如何进入WiX MSBuild社区任务.

我读过的一篇文章建议将MSBuild目标检入SVN文件夹.我有一个/ extlib文件夹用于这样的事情,所以我的TeamCity VCS结帐规则看起来像这样:

+:tags/2010-10-15=>src
+:extlib=>extlib
Run Code Online (Sandbox Code Playgroud)

如何从环境变量获取extlib? 当我运行构建时,TeamCity会抱怨(并且正确地)它无法找到c:\wix30\MSBuildCommunityTasks.实际的文件夹是C:\TeamCity\buildAgent\work\3e073d2b74226378\extlib\wix30\MSBuildCommunityTasks.该文件夹是自动生成的,因为我正在进行服务器端检出,因此必须有一些TeamCity设置的环境变量,我可以使用它来获取正确的路径.

我应该注意的一件事是我已经进入构建配置 - >属性和环境变量,并找到了包含所有现有变量的不直观的droplist,并且没有看到任何听起来像指向工作路径的变量的内容.

我能想到的一种可能的解决方法是在构建服务器上安装MSBuild社区任务,然后我可以创建一个可以访问的系统环境变量<WixToolPath>.

有没有人有其他建议?

msbuild teamcity wix msbuildcommunitytasks

5
推荐指数
1
解决办法
4484
查看次数

LINQ - 可以回溯吗?

我正在弄乱LINQ,我很想知道我能用它做些什么.我想知道是否有可能在结果集上施加条件的LINQ查询.例如,假设我有几个单词的列表,我希望找到形成链的单词集(即单词的最后一个字母=下一个单词的第一个字母,对链中的第一个或最后一个单词没有约束) .像"你好,老,乳制品,黄色,世界......"之类的东西.

从这些集合中,我想要采用形成最长链的集合.

LINQ可以这样做吗?

var chains = (from word in words
             select word
             where result.IsChain()).Max(x => x.Length);
Run Code Online (Sandbox Code Playgroud)

linq backtracking

5
推荐指数
1
解决办法
581
查看次数

如果我尝试比较Scala中的2个joda-time DateTime值,我会得到java.lang.NoClassDefFoundError.如何解决这个问题?

这是一个例子:


import org.scala_tools.time.Imports._
...
val dt1 : DateTime = new DateTime ("2010-09-01T12:00Z")
val dt2 : DateTime = new DateTime ("2010-10-01T12:10Z")
println (dt1 < dt2) // This is the Main.scala:48 line mentioned in the stack trace below
...

如果我编译并运行它,我得到


java.lang.NoClassDefFoundError: scala/Ordered
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at org.scala_tools.time.JodaImplicits$class.RichReadableInstant(Implicits.scala:70)
    at org.scala_tools.time.Imports$.RichReadableInstant(Imports.scala:20)
    at myproject.Main$.main(Main.scala:48)
...

可能是什么原因以及如何解决这个问题?

我使用所有(joda-time,SBT,Scala,SUN JVM)最新的稳定版本(excl joda-time - 我使用其最新的快照版本).

comparison datetime scala jodatime

1
推荐指数
1
解决办法
3016
查看次数

使用sinatra和haml从新的sass格式(scss)生成css文件

我正在写一个带有haml和sass的sinatra应用程序.当我尝试使用位于我的views文件夹中的scss扩展名链接样式表时,我收到以下错误:/nav.css中的NoMethodError未定义方法`scss'

这是我的get方法

get '/nav.css' do 
    content_type 'text/css', :charset => 'utf-8'
    scss :nav
end
Run Code Online (Sandbox Code Playgroud)

当我切换到较旧的sass语法时,我才能使用它.我还必须将nav.scss更改为nav.sass,将get方法更改为sass:nav

我也尝试过使用sass:nav with nav.scss和sass:nav with nav.sass但仍然是scss语法

ruby haml sass sinatra

6
推荐指数
2
解决办法
3850
查看次数

WPF 透明菜单

我目前有以下菜单:

        <Menu Grid.Row="1" Margin="3" Background="Transparent">
        <MenuItem Name="mnuFile" Header="File" Background="#28FFAE04" Foreground="#FFFED528">
            <MenuItem Name="mnuSettings" Header="Settings" Background="#28FFAE04" Foreground="#FFFED528" />
            <MenuItem Name="mnuExit" Header="Exit" Background="#28FFAE04" Foreground="#FFFED528" />
        </MenuItem>
        <MenuItem Name="mnuView" Header="View" Background="#28FFAE04" Foreground="#FFFED528" />
        <MenuItem Name="mnuAbout" Header="About" Background="#28FFAE04" Foreground="#FFFED528"  />
    </Menu>
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何使下降的部分变成半透明或完全透明的类似于浮动文本。这样我就可以看到下面的表格了。

任何帮助,将不胜感激。谢谢!

c# vb.net wpf contextmenu menu

2
推荐指数
1
解决办法
4945
查看次数

如何访问时间结构的字段

我正在尝试在struct timeval变量中打印值,如下所示:

int main()  
{  

    struct timeval *cur;  
    do_gettimeofday(cur);  
    printf("Here is the time of day: %ld %ld", cur.tv_sec, cur.tv_usec);  

    return 0;  
}  
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误:

request for member 'tv_sec' in something not a structure or union.  
request for member 'tv_usec' in something not a structure or union.

我怎样才能解决这个问题?

c linux

4
推荐指数
1
解决办法
2万
查看次数

XMPP:如何向服务器请求用户联系人的存在状态?

我们有一个网站,并使用 strope.js 库和 ejabberd XMPP 服务器为其开发了一个聊天系统。我们使用通过 PHP 启动的会话附件(使用内部库)。我们所做的就是从 PHP 脚本中获取 RID 和 SID,然后使用 strope 的会话附件。所述 RID 和 SID 存储在 cookie 中,每次 strope.js 上的 RID 更新时,cookie 上的 RID 值都会更新。

这工作正常,登录后我们会收到每个联系人的在线状态。这样做的问题是,当您转到站点上的另一个页面并使用所述 RID(我们使用 strope 生成的增量值)和 SID 进行附加时,服务器将不再发送您的联系人的状态信息,而不是当您登录时。这导致我们的联系人区域显示为完全不可见,即使他们在线。仅当您(或您的联系人)注销聊天然后再次登录时,它们才会在线显示(因为您将从 XMPP 服务器收到状态更新)。

我编写了一种解决方法,当从服务器接收到在线状态时,您的联系人的在线状态将保存在 cookie 中(所有在线联系人的 JID 都会保存在 cookie 中)。每次页面加载时都会检查此功能,如果设置了 cookie,则会读取该 cookie,并且 cookie 上的所有 JID 将被标记为在线。这工作正常,但可能有一些更好的方法来解决这个问题,使用 XMPP 的默认行为。

xmpp ejabberd strophe

2
推荐指数
1
解决办法
5988
查看次数

将代码/符号修补为动态链接的ELF二进制文件

假设我有一个动态链接的ELF二进制文件,我想覆盖/重定向某些库调用.我知道我可以这样做LD_PRELOAD,但我想要一个在二进制文件中永久存在的解决方案,独立于环境,并且适用于setuid/setgid二进制文件,其中没有一个LD_PRELOAD可以实现.

我想做的是从其他目标文件添加代码(如果需要,可能在新的部分中),并将这些目标文件中的符号添加到二进制符号表中,以便使用新添加的代码版本代替共享库代码.我相信这应该是可能的,而不需要在现有代码中实际执行任何重定位; 即使它们在同一个文件中,它们也应该能够在运行时以通常的PLT方式解析(因为我只关心函数而不是数据).

请不要给我答案"你不想这样做!" 或者"那不便携!" 我正在研究的是一种将二进制文件与稍微ABI不兼容的备用共享库实现连接起来的方法.有问题的平台是i386-linux(即32位),如果重要的话.除非我弄错了什么是可能的,否则我可以编写一些工具来解析ELF文件并执行我的黑客攻击,但我怀疑有一种奇特的方法可以使用GNU链接器和其他工具来完成此操作而无需编写新代码.

c linux elf dynamic-linking binutils

9
推荐指数
1
解决办法
6149
查看次数

使用Python ConfigParser的多个配置文件

调用ConfigParser.read时,您可以传递与配置文件的潜在位置相对应的字符串列表,该函数返回已成功读取的文件列表.

加载具有重叠部分/键的多个配置文件时的默认行为是什么?列表中的后续文件是否会覆盖之前的文件?整个部分是否被覆盖或只是冲突的键?

python configuration

27
推荐指数
2
解决办法
9192
查看次数